home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / cnet / wof_cnet.lha / Game.IBM < prev   
Text File  |  1995-09-29  |  91KB  |  1,474 lines

  1. /**************************************************************************\
  2.           $VER: Wheel of Fortune IBM, v6.41a by Dotoran! (29-Sep-95)
  3. \**************************************************************************/
  4. options results;signal on SYNTAX;signal on ERROR;signal on IOERR
  5. tr=transmit;se=sendstring;gc=getchar;gu=getuser;qu=query;bf=bufferflush
  6. bbsidentify name;bbsname=result;bbsidentify sysop;sysop=result
  7. seed=random(0,1000,time('s'));call READCONFIG
  8. changewhere "WOF IBM Game";oldwh=result
  9.  
  10. BEGIN: /* Entry Point if Winner Chooses to RePlay the Game. */
  11.     key1='n1'center(k1,78+(m1*3));key2='n1'center(k2,78+(m2*3))
  12.     d=substr(date('s'),5,2);d1=substr(resetD,5,2);if resetM=1&d-d1>=resetV then call RESETGAME
  13.     logs=0;log.='';wh=1;action='Visited ';gu 6;street=result;gu 9;voice=result;gu 10;data=result
  14.     gu 41;sid=result;date=date('s');gu 7;t=result;timeleft=t%10'.'right(t,1)
  15.     dateL=date('m',date,'s')' 'strip(right(date,2),'l','0')', 'left(date,4)
  16.     gu 15;access=result;gu 17;maintA=result;BFlag=0
  17.     cons='BCDFGHJKLMNPQRSTVWXZ';vows='AEIOU';if yvow=0 then cons=cons'Y';else vows=vows'Y'
  18.     wheel='15 10 4 5 3 1 8 6 5 12 3 1 13 2 7 14 6 4 3  2 6 9 4 5';wheal=overlay('11',wheel,42)
  19.     whe='ce100 cc150 cd200 cb250 cc300 c9400 cd450 cf500 cf600 ca750 cd1000 caFREESPIN cbSURPRISE ceLOSETURN c9BANKRUPT'
  20.     locs="2;32|2;41 3;39|3;43 4;41|4;45 5;43|5;47 6;45|6;49 7;47|7;51 8;48|8;52 9;47|9;51 10;45|10;49 11;42|11;47 12;41|12;45 "
  21.     locs=locs"13;39|13;43 14;32|14;41 13;30|13;34 12;28|12;32 11;26|11;31 10;24|10;28 9;22|9;26 8;21|8;26 7;22|7;26 6;24|6;28 "
  22.     locs=locs"5;26|5;30 4;28|4;32 3;30|3;34";freespins=0;cc=0;lo=0;sp=0
  23.  
  24.     if ~exists(dfile'GameData') then call SETUP
  25.  
  26.     call READPLAYERS;if player=0 then do;players=players+1
  27.         player=players;player.player=handle'|0|0|0|0|0|0|0|0|0|0|x';end
  28.     parse var player.player handle'|'puzwon'|'monwon'|'puznum'|'moncur'|',
  29.                             played'|'percent'|'bonwins'|'boncash'|'mills'|',
  30.                             bmills'|'junk
  31.     call READDATA;call READSTATS;call READWINNER;call READWINNERS
  32.     call READBWINNERS;call READMILLIONAIRES;call READBMILLIONAIRES
  33.     call READBANKERS;call READLASTPLAYER
  34.  
  35. START:
  36.     tr 'f1@4';a='ce'sysop' c9Broadcasting cfPresentsca:n1';tr center(a,93);call TITLE
  37.     tr center('cbBrought to you byc9: ca'bbsname' cfTV!n1',93)
  38.     tr center('c6There are ce'total' c6Known Puzzles!',85);tr key1;logmil=1
  39.     if shomil=1 then call MILLIONAIRES;if shomil=2 then do
  40.       se "f1n1c6View ceRegular Millionaires c6Listing? c7[cbNoc7]c9: cb";gc;a=result
  41.       if a~='Y' then tr 'Noc6.';else do;tr 'caYesc6!';call MILLIONAIRES;end;end
  42.     if shobmi=1 then call BMILLIONAIRES;if shobmi=2 then do
  43.       se "f1n1c6View ceBonus Millionaires c6Listing? c7[cbNoc7]c9: cb";gc;a=result
  44.       if a~='Y' then tr 'Noc6.';else do;tr 'caYesc6!';call BMILLIONAIRES;end;end
  45.     if shoban=1 then call BANKERS;if shoban=2 then do
  46.       se "f1n1c6View ceAll Time BEST WOF Player c6Listing? c7[cbNoc7]c9: cb";gc;a=result
  47.       if a~='Y' then tr 'Noc6.';else do;tr 'caYesc6!';call BANKERS;end;end
  48.     if Mflag=1&exists(dfile'NewPuz') then do
  49.       se "n1cbProcess cdUser Created cdPuzzles c6Now? c7[cbNoc7]c9: ";gc;a=result
  50.       if a~="Y" then tr "cbNoc6.";else do;tr "caYesc6!#0 "dfile"Grow "dfile"}";end;end
  51.     logmil=0;call MENU
  52.  
  53. MAIN:;call MORE0
  54.     se 'n1cf[ca'timeleft' ceMin.Leftcf] cbMenuc9: '
  55.     se 'cf>>>--ceUcf,caHcf,ceYcf,caAcf,cePcf,caLcf,ceBcf,'
  56.     se 'caVcf,ceScf,caIcf,cdQcf,cb?cf=cbMenucf--> '
  57. MAIN1:;gc;a=index('UHALBYPVSIQC!?/M',result);ck=CHECK();bf;if a=0 then signal MAIN1
  58.     if a=16 & Mflag=1 then do;tr 'cbMaintenance#0'dfile'Maint}';changewhere "WOF IBM Game"
  59.         if ~exists(dfile'GameData') | ~exists(dfile'Players') then signal QUIT3;else signal MAIN;end
  60.     if a=1 then do;tr 'ceUser Config';se '#0 'dfile'UserConfig}';call READCONFIG;signal BEGIN;end
  61.     if a=2 then do;tr 'caHall of Fame';call HOFAME    ;signal MAIN;end
  62.     if a=3 then do;tr 'caAll Scores'  ;call ALLSCORES ;signal MAIN;end
  63.     if a=4 then do;tr 'caLast Puzzles';call LASTPUZS  ;signal MAIN;end
  64.     if a=5 then do;tr 'ceBonus Puzzles'; call BONUSPUZS ;signal MAIN;end
  65.     if a=6 then do;tr 'ceYour Stats'  ;call YOURSTATS ;signal MAIN;end
  66.     if a=7 then do;tr 'cePlay Game'   ;signal PLAYGAME;end
  67.     if a=8 then do;tr 'caView Game Logs'
  68.       se 'f1n1c6View cbNEW caGame Log c6Now? cf[cbYescf]c6: ';gc;a=result;if a='N' then tr 'c9Noc6.'
  69.       else do;tr 'cbYesc6!';call MORE1;tr '*0'dfile'Log.NEW.IBM}q1'key1
  70.         call WL("ca"handle" c6viewed the cfNEW cbGame Logc6.");end
  71.       se 'f1n1c6View ceOLD caGame Log c6Now?  cf[c9Nocf]c6: ';gc;a=result;if a~='Y' then tr 'c9Noc6.'
  72.       else do;tr 'cbYesc6!';call MORE1;tr '*0'dfile'Log.OLD.IBM}q1'key1
  73.         call WL("ca"handle" c6viewed the ceOLD cbGame Logc6.");end
  74.       signal MAIN;end
  75.     if a=9 then do;tr 'ceSee Millionaires'
  76.       se 'f1n1c6See c7<caRc7>caegular c6or c7<cbBc7>cbonus ceMillionairesc6? cf[cdQUITcf]c6: ';gc;a=result
  77.       if a='R' then do;tr 'caRegular';call MILLIONAIRES;end
  78.       else if a='B' then do;tr 'cbBonus';call BMILLIONAIRES;end
  79.       else tr 'cdQuit';signal MAIN;end
  80.     if a=10 then do;tr 'caInstructions';call DOCS;signal MAIN;end
  81.     if a=11 then do;tr 'cdQuit Game'   ;call QUIT;signal MAIN;end
  82.     if a=12 & Mflag=1 then do;tr 'c9Cancel Game';signal CANCELGAME;end
  83.     if a=13 & Mflag=1 then do;call open(f1,dfile'LastPlayer','w')
  84.         call writeln(f1,'0|No One|No Where|0|0|1|0|x');call close(f1)
  85.         call READLASTPLAYER;tr 'cePlay Game';signal PLAYGAME;end
  86.     if a>13 then do;tr 'cbMain Menu';call MENU;signal MAIN;end
  87.   signal MAIN1
  88.  
  89. PLAYGAME:
  90.     if Lhan='No One' & play=0 & handle=winhan then do
  91.         call WL("ca"handle" c6tried to play first, but was the cbLast Winnerc6!")
  92.         se 'f1n1c6'hostM' comes up to you and whispers in your ear, cb"caSorry, cd'handle
  93.         se 'ca, but ce'sysop' Broadcasting cadoesn''t allow recent winners to be '
  94.         se 'the c9FIRST caplayer in a cfNEW cdGameca. You''ll have to wait until another '
  95.         tr 'contestant has played the game.cb"n1'
  96.         se 'c6On your way out of the studio, 'hostF' hands you a slip of paper. '
  97.         tr 'Reading it, you discover the new puzzle.n1';call SHOWPUZZLE
  98.         tr key2;signal QUIT2;end
  99.  
  100.     if handle=author then do
  101.         call WL("ca"handle" c6tried to play, but is the cbAuthorc6!")
  102.         se 'f1n1c6'hostF' and 'hostM' approach you from the wings.  'hostF' gives '
  103.         se 'you a playful slap on the butt. 'hostM' says, cb"caNaughty. You wrote '
  104.         tr 'the puzzle and must wait until someone wins.cb"n1'
  105.         se 'c6After a moment, 'hostM' continues, cb"caHowever, we will show you how '
  106.         tr 'your puzzle is doing before you leave.cb"n1';call SHOWPUZZLE
  107.         tr key2;signal QUIT2;end
  108.  
  109.     if newplay=0 & (sid=0 | access=0) then do
  110.         call WL("ca"handle" c6tried to play, but was a cbGuestc6/cbNew Userc6!")
  111.         se 'f1n1c6'hostM' looks at you quizically, cb"caYou''re c9NEW caaround here, aren''t '
  112.         se 'you?  We do not currently allow c9NEW Users ca& c9GUESTS cato Play The Wheel of '
  113.         tr 'Fortune, c9Sorrycb"n1'
  114.         se '"caWe will, however, show you how the current puzzle is doing, in case '
  115.         tr 'you''d like to play after you''ve been validated.cb"c6, 'hostM' says.n1'
  116.         call SHOWPUZZLE;tr key2;signal QUIT2;end
  117.  
  118.     if Lflag=1 then do
  119.         call WL("ca"handle" c6tried to play, but is the cdLast Playerc6!")
  120.         se 'f1n1c6'hostM' laughs in your face and signals for a bouncer to '
  121.         se 'throw you out of the studio.  You were either the last player, '
  122.         se 'or have too much in common with the last player, and must wait '
  123.         tr 'for someone else to play.n1'
  124.         if chance=1 then do;a=random(1,9);b=random(1,9);if a=b then do
  125.             se 'As the bouncer approaches you, you kick him in the groin '
  126.             se 'and run onto the studio set. 'hostM' has no choice, but to let '
  127.             tr 'you play again!n1'key1;Lhan='Bouncer in Agony!'
  128.             call WL("ca"handle" c6beat up the cbBouncer c6to play again!")
  129.             signal PLAYGAME2;end;end
  130.         if chance>1 & (el>=(chance-1)*6) then do
  131.             se 'c6Twiddling his thumbs, 'hostM' looks at his watch, then '
  132.             se 'tells you, cb"cd'handle'ca, it''s been c9'||(chance-1)*6||' cahours since '
  133.             se 'you last played, and we haven''t had any new contestants, '
  134.             tr 'so come on down and take another spin!cb"n1'key1
  135.             call WL("ca"handle" c6waited the cbalotted time c6to play again!")
  136.             signal PLAYGAME2;end
  137.         se 'c6From over the bouncers shoulder, you get a glimpse of how '
  138.         tr 'the current puzzle is doing...n1';call SHOWPUZZLE
  139.         if chance>1 then do;se 'n1c6'hostM' then tells you, cb"cd'handle'ca, if no other players take a '
  140.             tr 'turn in the next c9'||((chance-1)*6)-el||' cahours, we''ll let you play again.cb"';end
  141.         LHan="";tr key2;signal QUIT2;end
  142. PLAYGAME2:
  143.     if puznum~=puzplay then do;puznum=puzplay;moncur=0
  144.         if handle~=winhan then do;played=played+1
  145.             call WL("ca"handle" c6just ceentered c6this cbGamec6!")
  146.             percent=((puzwon/played)*100)%1;end;end
  147.     if vanna=2&(vannaA=1|(vannaA=2&age>13)|(vannaA=3&age>15)) then do
  148.         se 'caView c6graphic picture of cfVanna White c6now? c7[cbNoc7]c9: cb';gc;a=result
  149.         if a~='Y' then tr 'Noc6.';else do;tr 'caYesc6!'
  150.         se "L70 #"handle"ca? Glad to}L71 #"hostF"ca,}L72 #"hostM" welcomes you to the show,}*4"dfile"Graphics/vanna.ans}@4";end;end
  151.     if vanna=1&(vannaA=1|(vannaA=2&age>13)|(vannaA=3&age>15)) then do
  152.         se "L70 #"handle"ca? Glad to}L71 #"hostF"ca,}L72 #"hostM" welcomes you to the show,}*4"dfile"Graphics/vanna.ibm}@4";end
  153.     if OLog<2&NLog<2&Spin<3&Gibm<4 then tr key1
  154. PLAY:
  155.     if consonants=0 & vowels=0 then do;solve=answer;signal GUESSPUZZLE0;end
  156.     if lo=0 then do;lo=1;call MORE1
  157.         if OLog=1 then tr 'f1c6Previous Game Logc9:n1*0'dfile'Log.OLD.IBM}@4'key1
  158.         if OLog=2 then do;se 'n1c6View caOLD cdGame Log c6Now? c7[caNoc7]c6: ca';gc;a=result
  159.             if a~='Y' then tr 'No.';else tr 'Yes!f1*0'dfile'Log.OLD.IBM}@4'key1;end
  160.         if NLog=1 then tr 'f1c6Current Game Logc9:n1*0'dfile'Log.NEW.IBM}@4'key1
  161.         if NLog=2 then do;se 'n1c6View caNEW cdGame Log c6Now? c7[caNoc7]c6: ca';gc;a=result
  162.             if a~='Y' then tr 'No.';else tr 'Yes!f1*0'dfile'Log.NEW.IBM}@4'key1;end
  163.         if spin=3 then do;call MORE0;se 'n1c6Use c7[cdQc7]cduickc6, c7[caSc7]capinningc6, or c7[cbWc7]cbedge c6Wheel Graphics? '
  164.           se 'c7[cbWedgesc7]c6: ';gc;a=result;if a='Q' then do;tr 'cdQuick';Spin=0;end
  165.           else if a='S' then do;tr 'caSpinning';spin=1;end;else do;tr 'cbWedges';spin=2;end;end
  166.         if gibm=4 then do;tr 'n1c6Possible cePuzzle cfGuessing c6Formatsc9:n1'
  167.           tr '>5cf[caRcf]caegular Format cf(caYou type cfALL cacharacters in Puzzle Title.cf)'
  168.           tr '>5c7<cbTc7>cbimer Shown, while using Regular Format entering above.'
  169.           tr '>5c7<cdFc7>cdill-In-Knowns c7(cdKnown characters automatically filled in.c7)'
  170.           tr '>5c7<ceHc7>ceole-Fill-Ins  c7(ceAll known characters filled in at start.c7)'
  171.           se 'n1c6Use which cePuzzle cfGuessing c6format? cf[caRegularcf]c9: ';gc;a=result
  172.           if a='T' then do;tr 'cbTimer Shown';gibm=1;end
  173.           else if a='F' then do;tr 'cdFill-In-Knowns';gibm=2;end
  174.           else if a='H' then do;tr 'ceHole-Fill-Ins';gibm=3;end
  175.           else do;tr 'caRegular';gibm=0;end;end;end
  176.     a=length(space(answer,0));b=a-(consonants+vowels);call MORE0
  177.     if b/a>.50 & wh=1 then do
  178.         tr 'n1c6'hostM' says, cb"caWe will now add c2$cb1000 cato the Wheel!cb"'
  179.         tr key1;wheel=wheal;wh=2;end
  180.     tr 'f1c9┌──────────────────────────────────────────────────────────────────────────┐'
  181.     tr 'c9│cb▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒░░░░░░░░░░cer1 WHEEL OF FORTUNE r0cb░░░░░░░░░░▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓c9│'
  182.     tr 'c9└──────────────────────────────────────────────────────────────────────────┘'
  183.     tr 'z7c4                           Wheel Spots / Odds                               z0'
  184.     if wh=1 then tr 'z7c4      1-$750, 1-$600, 1-$500, 1-$450, 3-$400, 3-$300, 3-$250, 3-$200,       z0'
  185.     if wh=2 then tr 'z7c4  1-$1000, 1-$750, 1-$600, 1-$500, 1-$450, 3-$400, 3-$300, 3-$250, 2-$200,  z0'
  186.     tr 'z7c4      2-$150, 2-$100, 1-Free Spin, 1-Lose Turn, 1-Bankrupt, 1-Surprise      z0n1'
  187.     tr 'cfCurrent Puzzle Numberc9: ce'left(puznum,20)'cfLast Playerc9: cb'Lhan
  188.     tr 'cfCurrent Puzzle Authorc9: ca'left(author,20)'cfLast Winnerc9: cd'winhan'n1'
  189.     call CNUM(moncur);se 'cfPLAYERc9: ce'left(handle,16)' cfWINNINGSc9: c2$cb'
  190.     se left(a,9)' cfPREVIOUS WINNINGSc9: c2$cb';call CNUM(monwon);tr a'n1'
  191.     if Banked=1 & monwon>0 & moncur<300 then do;a1='cf[c9Ucf]c9se Previous'
  192.         a2='Cc9Funds';a3='';s='c9Ucf,';end;else do;a1='';a2='';a3='C';s='';end
  193.     tr 'C'a3'cf[cbScf]cbpin the Wheel     cf[ceBcf]ceuy a Vowel   'a1
  194.     tr 'C'a3'cf[caGcf]cauess the Puzzle   cf[cdQcf]cduit Play     'a2
  195.     tr;call SHOWPUZZLE;tr 'CcfFree Spinsc9: ca'freespins'n1'
  196.     if consonants>0 & vowels>0 then tr center('cbr1 Good Luck! r0',87)
  197.     if consonants=0 then tr center('cer1 There are ONLY Vowels left in this Puzzle! r0',87)
  198.     if vowels=0 then tr center('c9r1 There are NO MORE Vowels left in this Puzzle! r0',87)
  199.     se 'n1cf[caPlaycf] >>>--cbScf,ceBcf,'s'caGcf,cdQcf--> '
  200. PLAY1:
  201.     gc;a=result;ck=CHECK();if index('!SBUGQ',a)=0 then do;bf;signal PLAY1;end;if a="!"&MFlag=1 then tr 'n1'answer
  202.     if a='U' & Banked=1 & monwon>300 & moncur<300 then do
  203.         tr 'c9Use Funds';signal USEFUNDS;end
  204.     if a='S' then do;tr 'cbSpin Wheel'  ;signal SPINWHEEL  ;end
  205.     if a='B' then do;tr 'ceBuy Vowel'   ;signal BUYVOWEL   ;end
  206.     if a='G' then do;tr 'caGuess Puzzle';signal GUESSPUZZLE;end
  207.     if a='Q' then do;tr 'cdQuit Play'   ;signal MAIN       ;end
  208.   signal PLAY1
  209.  
  210. USEFUNDS:;moncur=moncur+300;monwon=monwon-300;Banked=0
  211.   signal PLAY
  212.  
  213. SPINWHEEL:;if consonants=0 then do;se 'n1c6'hostM' reminds you, cb"cd'handle'ca, '
  214.         tr 'caremember, there are cfONLY VOWELS caleft in this puzzle.cb"'
  215.         call WL("ca"handle" c6tried to cfSPIN c6with ceONLY VOWELS c6left!")
  216.         tr key1;signal PLAY;end
  217.     if Spin=0 then do;se "f1n8c6Spinningc9: ";a1=random(1,24);t=slow%100
  218.       do i=1 to 24;se left(word(whe,word(wheel,i)),11)
  219.         call time('r');do until time('e')>=t;end;se 'h8';end i
  220.       do i=1 to a1;se left(word(whe,word(wheel,i)),11)
  221.         call time('r');do until time('e')>=t;end;se 'h8';end i
  222.       tr 'z4cf'substr(word(whe,word(wheel,a1))'z0',4,11)'n1'
  223.       c=word(wheel,a1);end
  224.     if Spin=1 then call D17
  225.     if Spin=2 then do;se 'f1';a=random(25,60);sp=sp+a
  226.         do until sp<30;sp=sp-25;end;b=random(2,4)
  227.         a=sp-b;b=sp;if a<1 then a=1;action='Played ';call D16
  228.         do i=a to b;ii=i;if i>24 then ii=i-24;spot=word(wheel,ii)
  229.             call D0;end i;tr 'n9';end
  230.     if c=12 then signal FREESPIN;if c=13 then signal SURPRISE
  231.     if c=14 then signal LOSETURN;if c=15 then signal BANKRUPT
  232.     a='100 150 200 250 300 400 450 500 600 750 1000';money=word(a,c)
  233.     tr 'cfThere is c2$cb'money' cfshowing on the ceWheelcf!n1'
  234. SURPRISE0B:
  235.     call SHOWPUZZLE
  236. SPINWHEEL1:
  237.     se 'scfType Your Guessc9:ca ';gc;guess=result;ck=CHECK()
  238.     if index(cons,guess)=0 then do;se 'u';signal SPINWHEEL1;end
  239.     bf;se guess;call CNUM(money)
  240.     log="c6With c2$cb"a" c6on cfThe Wheelc6, ca"handle
  241.     log=log" c6guesses c9"guess"c6...";call WL(log)
  242.     if index(guessed,guess)>0 then do
  243.         call WL("c6Which was c9ALREADY cbGuessedc6!")
  244.         se 'n2c6That caconsonant c6has cfalready c6been guessed...w1u'
  245.         signal SPINWHEEL1;end
  246.     if index(answer,guess)>0 then do;tr '  cf>>>---> caGOOD GUESS!'
  247.         g=guessed;if g='' then g=guess;else g=g'-'guess
  248.         guessed=g;call COUNT;consonants=consonants-tot
  249.         call UNCOVER;call COLORPUZZLE;call COLORGUESSED;Lhan=handle
  250.         if tot=1 then call WL("c6There was ce1 c9"guess"c6 in the puzzle: "puzzle2)
  251.         if tot>1 then call WL("c6There were ce"tot" c9"guess"c6's in the puzzle: "puzzle2)
  252.         if index(cons,guess)>0 then moncur=moncur+(money*tot)
  253.         if tot=1 then se 'n1Cc6There is ce1 cb"ca'guess'cb" '
  254.             else se 'n1Cc6There are ce'tot' cb"ca'guess'cb"c6''s '
  255.         tr 'c6in the puzzle.n1'key1;signal PLAY;end
  256.     if index(answer,guess)=0 then do;tr '  cf>>>---> c9WRONG!!'
  257.         g=guessed;if g='' then g=guess;else g=g'-'guess
  258.         guessed=g;Lhan=handle;call COLORGUESSED
  259.         call WL("c6But there were cbNO c9"guess"c6's in the puzzle: "guessed2)
  260.         if freespins=0 then do;tr 'n1Awwww... cbBetter Luck cfnext time.'
  261.             call WL("ca"handle" c6is cffinished c6for this turn.")
  262.             call SAVEPLAYERS;call SAVEDATA;signal QUIT2;end
  263.         tr 'n1ceBut not to worry, cfYou have a cbFree Spincf!'
  264.         call WL("c6However, ca"handle" c6has a cbFree Spinc6!")
  265.         freespins=freespins-1;tr key1;signal PLAY;end
  266. FREESPIN:
  267.     call WL("ca"handle" c6just landed on cbFREE SPINc6!")
  268.     se 'c6'hostM' says, cb"caCongratulations cd'handle'ca, you now have a c9Free '
  269.     tr 'Spinca!cb"';freespins=freespins+1;tr key1
  270.   signal PLAY
  271. LOSETURN:
  272.     call WL("ca"handle" c6just landed on cdLOSE A TURNc6!")
  273.     se 'c6Frowning, 'hostM' tells you, cb"caUh Oh cd'handle'ca, looks like you '
  274.     tr 'c9Lose a Turnca.cb"n1';if freespins>0 then do
  275.         se 'cb"caThat''s alright, however, because you still have a cbFree '
  276.         tr 'Spinca!cb"c6, 'hostM' says consolingly.';freespins=freespins-1
  277.         call WL("c6However, ca"handle" c6has a cbFree Spinc6!")
  278.         tr key1;signal PLAY;end
  279.     se 'cb"caThat''s too bad, you weren''t doing all that bad. Well, you '
  280.     tr 'can try again next callcb"c6, 'hostM' mumbles.';Lhan=handle
  281.     call WL("ca"handle" c6is cffinished c6for this turn.")
  282.     call SAVEPLAYERS;call SAVEDATA;signal QUIT2
  283. BANKRUPT:
  284.     call WL("ca"handle" c6just landed on c9BANKRUPTc6!");call CNUM(moncur)
  285.     call WL("ca"handle" c6loses c2$cb"a" c6bucks!")
  286.     se 'cb"c9BANKRUPTca! Only one on the whole wheel, and cd'handle'ca, you '
  287.     tr 'just found itcb"c6, 'hostM' informs you.n1';moncur=0
  288.     if freespins>0 then do
  289.         tr 'cb"caLuckily you still have a cbFree Spinca!cb"c6, 'hostM' praises.'
  290.         call WL("c6However, ca"handle" c6has a cbFree Spinc6!")
  291.         freespins=freespins-1;tr key1;signal PLAY;end
  292.     tr 'cb"caHopefully you''ll do better cfnext callca!cb"c6, 'hostM' explains.'
  293.     call WL("ca"handle" c6is cffinished c6for this turn.")
  294.     Lhan=handle;call SAVEPLAYERS;call SAVEDATA;signal QUIT2
  295. SURPRISE:
  296.     call WL("ca"handle" c6just landed on cfSURPRISEc6!")
  297.     tr 'cb"caWow, ceSURPRISEca!cb"c6, 'hostM' exclaims!n1'
  298.     a=random(1,6);a='SURPRISE'a;signal (a)
  299. SURPRISE1:
  300.     call WL("ca"handle"c6's cfSURPRISE c6is a cbFREE SPINc6!")
  301.     se 'cb"caWell, cd'handle' cayour ceSurprise cais a cbFREE SPINca!cb"c6, 'hostM' informs '
  302.     tr 'you.';freespins=freespins+1;tr key1;signal PLAY
  303. SURPRISE2:
  304.     if vowels=0 then signal SURPRISE3
  305.     call WL("ca"handle"c6's cfSURPRISE c6is a ceFREE VOWELc6!")
  306.     se 'cb"caHey cd'handle'ca, Congratulations, your ceSURPRISE cais to '
  307.     tr 'cfBUY caa ceVOWEL cafor cfFREEca!cb"c6, 'hostM' states.n1'
  308.     moncur=moncur+250;signal SURPRISE0A
  309. SURPRISE3:
  310.     c=random(1000,1500);money=c;call CNUM(money)
  311.     call WL("ca"handle"c6's cfSURPRISE c6is c2$cb"a" c6on cfThe Wheelc6!")
  312.     se 'c6Pulling out a white envelope, 'hostM' opens it and says, cb"cd'handle
  313.     tr 'ca, this next guess will be worth c2$cb'a' bucks! cfGood Luckca!cb"n1'
  314.   signal SURPRISE0B
  315. SURPRISE4:
  316.     suPR=suPR1;suVA=suVA1;signal SURPRISE7
  317. SURPRISE5:
  318.     suPR=suPR2;suVA=suVA2;signal SURPRISE7
  319. SURPRISE6:
  320.     suPR=suPR3;suVA=suVA3
  321. SURPRISE7:
  322.     if suPR=5 then signal SURPRISE2;if suPR=6 then signal SURPRISE1;if suPR=4 then signal SURPRISE3
  323.     if (suPR=0 & InfTimeR=1) | (suPR=1 & InfGameP=1) | (suPR=2 & InfByteC=1) | (suPR=3 & InfFileC=1) then do
  324.         a=random(1,3);a='SURPRISE'a;signal (a);end
  325.     if suPR=0 then do;addtime (suVA)
  326.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfExtra Minutesc6!")
  327.         se 'ce'sysop' c6waves 'hostM' over to him.  When he returns, 'hostM' tells you, '
  328.         se 'cb"caCongrats cd'handle'ca, ce'sysop' cahas given you cf'suVA
  329.         tr ' c9Extra Minutes caOnline!cb"n1'key1;end
  330.     if suPR=1 then do;addpoints (suVA);call CNUM(suVA)
  331.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfPfile Game Pointsc6!")
  332.         se 'ceThe Director c6tells 'hostM' he has a phone call from ce'sysop'c6. When '
  333.         se 'he returns, 'hostM' tells you, cb"caHey cd'handle'ca, Guess what?! ce'sysop
  334.         tr ' cahas decided to give you cf'a' c9Pfile Game Pointsca. Congrats!cb"n1'key1;end
  335.     if suPR=2 then do;gu 35;a=result;a=a+suVA;setobject a;putuser 35;call CNUM(suVA)
  336.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfByte Creditsc6!")
  337.         se 'ce'hostF' c6steps offstage, then returns with a satisfied grin on her face, '
  338.         se 'cb"caI''ve just been with ce'sysop'ca! He wants you to receive cf'a
  339.         tr ' c9Byte Credits caas your Surprise! Good Going!cb"n1'key2;end
  340.     if suPR=3 then do;gu 34;a=result;a=a+suVA;setobject a;putuser 34
  341.         call WL("ca"handle"c6's cfSURPRISE c6is ca"suVA" cfFile Creditsc6!")
  342.         se 'ce'hostF' c6faints dead away on the stage. When she comes to, she tells '
  343.         se 'you, cb"caI''ve just had a vision from ce'sysop'ca!  In it, he told me '
  344.         tr 'to make sure you received cf'suVA' c9File Credits caright now!cb"n1'key2;end
  345.   signal PLAY
  346.  
  347. BUYVOWEL:
  348.     if vowels=0 then do;se 'n1c6'hostM' reminds you, cb"cd'handle'ca, '
  349.         tr 'remember, there are cfONLY CONSONANTS caleft in this puzzle.cb"'
  350.         call WL("ca"handle" c6tried to cfBUY A VOWEL c6with ceONLY CONSONANTS c6left!")
  351.         tr key1;signal PLAY;end
  352.     if moncur<300 then do
  353.         call WL("ca"handle" c6tried to ceBUY c6a cbVowel c6with only c2$cb"moncur"c6!")
  354.         se 'n1c6'hostM' informs you ceVowels Cost c2$cb250c6, and that you''ll '
  355.         tr 'need at least c2$cb300 c6to buy one!n1'key1;signal PLAY;end
  356.     se 'f1n5c6Turning towards you, 'hostM' says, cb"cd'handle'ca, enter the '
  357.     tr 'ceVOWEL cayou wish to ceGuessca. Remember, this will cost you c2$cb250ca!cb"n1'
  358. SURPRISE0A:
  359.     call SHOWPUZZLE;action='Played '
  360. BUYVOWEL1:
  361.     se 'scfType Your Guessc9: ce';gc;guess=result;ck=CHECK()
  362.     if index(vows,guess)=0 then do;se 'u';signal BUYVOWEL1;end
  363.     bf;se guess;call WL("ca"handle" ceBUYS c6the cbVowel c9"guess"c6...")
  364.     if index(guessed,guess)>0 then do
  365.         call WL("c6But that cbVowel c6was c9Already c6guessed!")
  366.         se 'n1c6That cavowel c6has cfalready c6been guessed...w1u'
  367.         signal BUYVOWEL1;end
  368.     if index(answer,guess)>0 then do;tr '  cf>>>---> caGOOD GUESS!'
  369.         g=guessed;if g='' then g=guess;else g=g'-'guess
  370.         guessed=g;call COUNT;vowels=vowels-tot
  371.         call UNCOVER;call COLORPUZZLE;call COLORGUESSED;moncur=moncur-250
  372.         if tot=1 then call WL("c6There was ce1 c9"guess"c6 in the puzzle: "puzzle2)
  373.         if tot>1 then call WL("c6There were ce"tot" c9"guess"c6's in the puzzle: "puzzle2)
  374.         if tot=1 then se 'n1Cc6There is ce1 cb"ca'guess'cb" '
  375.             else se 'n1Cc6There are ce'tot' cb"ca'guess'cb"c6''s '
  376.         tr 'c6in the puzzle.n1'key1;signal PLAY;end
  377.     if index(answer,guess)=0 then do;tr '  cf>>>---> c9WRONG!!'
  378.         g=guessed;if g='' then g=guess;else g=g'-'guess
  379.         guessed=g;Lhan=handle;call COLORGUESSED;moncur=moncur-250
  380.         call WL("c6But there were cbNO c9"guess"c6's in the puzzle: "guessed2)
  381.         if freespins=0 then do;tr 'n1Awwww... cfBetter luck c6next time.'
  382.         call WL("ca"handle" c6is cffinished c6for this turn.")
  383.             call SAVEPLAYERS;call SAVEDATA;signal QUIT2;end
  384.         tr 'n1c6But not to worry, cfYou have a cbFree Spincf!'
  385.         call WL("c6However, ca"handle" c6has a cbFree Spinc6!")
  386.         freespins=freespins-1;tr key1;signal PLAY;end
  387.  
  388. GUESSPUZZLE:
  389.     if zero=0 & moncur<100 then do
  390.         se 'n1c6'hostM' wipes his brow, then looks at you, cb"caSorry, cd'handle
  391.         se 'ca, but you need more than c2$cb100 cabefore you can attempt to cfGUESS '
  392.         tr 'cathis puzzle!cb"n1'key1;signal PLAY;end
  393.     se 'f1n5c6Startled, 'hostM' asks, cb"caSo, cd'handle'ca, you think you know '
  394.     tr 'this puzzle.  Well, cfgood luck cain guessing it!cb"n1'
  395.     call WL("ca"handle" c6will try and cfSOLVE c6the puzzle...")
  396.     call SHOWPUZZLE;len=length(puzzle)
  397.     tr 'n1cfType your cbGuess cfbelow the ceCurrent Puzzlec9:n1'
  398.     tr 'cf The Puzzle Nowc9: 'translate(puzzle2,hide,'@');bf
  399.     if gibm=0|gibm=1 then do;tr 'cfYour Best Guessc9: cai4225 'len'}'
  400.         gu 70;solve=result;ck=CHECK();signal ASC4;end
  401.     if gibm=2 then do;pu=translate(puzzle,'@',hide)
  402.       se "cfYour Best Guessc9: ca";solve='';c=1
  403. ASC1:;if c<=length(pu) then z=substr(pu,c,1);else z=""
  404.   if z~="@"&z~="" then do;solve=solve||z;se z;signal ASC3;end
  405. ASC2:;gc;a=result;ck=CHECK()
  406.   if a=d2c(13) then do;tr;signal ASC4;end
  407.   if a=d2c(8) then do;if c=1 then signal ASC2;c=c-1
  408.     solve=left(solve,c-1);se "h1";signal ASC2;end;solve=solve||a;se a
  409. ASC3:;c=c+1;signal ASC1;end
  410.     if gibm=3 then do;pu=translate(puzzle,'@',hide);pt=translate(pu,' ','@')
  411.     se "cfYour Best Guessc9: cas"pt"u";solve='';c=1
  412. IBM1:;if c<=length(pu) then z=substr(pu,c,1);else z=""
  413.   if z~="@"&z~="" then do;solve=solve||z;se z;signal IBM3;end
  414. IBM2:;gc;a=result;ck=CHECK();if a=d2c(13) then signal ASC4
  415.   if a=d2c(8) then do;if c=1 then signal IBM2;c=c-1
  416.     solve=left(solve,c-1);se "h1";signal IBM2;end;solve=solve||a;se a
  417. IBM3:;c=c+1;signal IBM1;end
  418. ASC4:;if solve~=answer then do
  419.     call WL("c6But, alas, more cbSTUDY c6is needed for this puzzle!")
  420.     se 'c6Shaking his head, 'hostM' tells you, cb"caI''m sorry cd'handle
  421.     tr 'ca, but that''s c9not cathe correct answer.cb"n1'
  422.     Lhan=handle;if freespins=0 then do
  423.     tr 'n1c9Awwww... c6Try again when a cbfew more letters c6are showing.'
  424.         call WL("ca"handle" c6is cffinished c6for this turn.")
  425.         call SAVEPLAYERS;call SAVEDATA;signal QUIT2;end
  426.     tr 'n1c6But not to worry, cfYou have a cbFree Spincf!'
  427.     call WL("c6However, ca"handle" c6has a cbFree Spinc6!")
  428.     freespins=freespins-1;tr key1;signal PLAY;end
  429. GUESSPUZZLE0:
  430.     if solve=answer then do
  431.         if olm>0 then do;se "c6Sending cfOLM'sc6:ca   "
  432.             call SENDOLM("   cfCongratulations c6to cd"handle" c6who just c9SOLVED c6the current cbWheel of Fortune cePuzzlec6!");end
  433.         call WL("cfCongratulations c6to ca"handle" c6who just cbSOLVED c6the puzzle!")
  434.         se 'f1n1c6Clapping his hands, 'hostM' says, cb"caCongratulations cd'handle;call CNUM(moncur)
  435.         tr 'ca, You''ve just won c2$cb'a' cain cfCASH caand cfPRIZESca!cb"'
  436.         if puPR>0 then do;call CNUM(puVA)
  437.             se 'n1c6For c9winning c6the game, cb'sysop' Broadcasting c6has decided '
  438.             se 'to give you ca'a' ce'pr.puPR'c6!  Enjoy them!n1'
  439.             if puPR=1 then addtime (puVA);if puPR=2 then addpoints (puVA)
  440.             if puPR=3 then do;gu 35;b=result;b=b+puVA;setobject (b);putuser 35;end
  441.             if puPR=4 then do;gu 34;b=result;b=b+puVA;setobject (b);putuser 34;end
  442.             call WL("ca"handle" c6was awarded cf"a" c9"pr.puPR"c6 for solving this cfPuzzlec6!");end
  443.         puzwon=puzwon+1;winhan=handle;windate=date;wins=puzwon
  444.         winpuz=answer;played=played+1;monwon=monwon+moncur
  445.         winmon=monwon;percent=((puzwon/played)*100)%1
  446.         winner=winhan'|'winpuz'|'windate'|'winmon'|'wins'|x'
  447.         winners=winners+1;winner.winners=winhan'|'winpuz'|'windate'|x'
  448.         l.1='cc'copies('=',78);l.2='cf  The Win Datec9: cb'dateL
  449.         l.3='cf    The Puzzlec9: ce'answer;l.4='cf   Puzzle Cluec9: ca'clue;call CNUM(winmon)
  450.         l.5='cf Puzzle Winnerc9: cd'handle;l.6='cfTotal Winningsc9:c2$cb'a
  451.         do i=1 to 6;call WL(l.i);end i;if winners>max1 then do;winners=max1
  452.             do i=2 to max1+1;j=i-1;winner.j=winner.i;end i;end
  453.         if played>mostplays then do;se 'n1c6'hostM' says, cb"cd'handle
  454.             tr 'ca, you c9broke cathe old cfMOST PLAYS caRecord!cb"'
  455.             call WL("ce  A NEW RECORDc9: cfPlayed the caMOST cfTimes!")
  456.             mostplaysH=winhan;mostplays=played;end
  457.         if wins>mostpuzs then do;se 'n1c6'hostM' says, cb"cd'handle
  458.             tr 'ca, you c9broke cathe old cfMOST PUZZLES caRecord!cb"'
  459.             call WL("ce  A NEW RECORDc9: cfWon the caMOST cfPuzzles!")
  460.             mostpuzsH=winhan;mostpuzs=wins;end
  461.         if monwon>mostbank then do;se 'n1c6'hostM' says, cb"cd'handle
  462.             tr 'ca, you c9broke cathe old cfMOST TOTAL WINNINGS caRecord!cb"'
  463.             call WL("ce  A NEW RECORDc9: cfWon the caMOST cfBucks cdEVERcf!")
  464.             mostbankH=winhan;mostbank=monwon;end
  465.         if moncur>mostcash then do;se 'n1c6'hostM' says, cb"cd'handle
  466.             tr 'ca, you c9broke cathe old cfMOST WINNINGS caRecord!cb"'
  467.             call WL("ce  A NEW RECORDc9: cfWon the caMOST cfBucks in cdONE GAMEcf!")
  468.             mostcashH=winhan;mostcash=moncur;end
  469.         stats.1=mostplaysH'|'mostplays'|x';stats.2=mostpuzsH'|'mostpuzs'|x'
  470.         stats.3=mostbankH'|'mostbank'|x'  ;stats.4=mostcashH'|'mostcash'|x'
  471.         if monwon>=1000000 then do;se 'n1c6'hostM' says, cb"cd'handle"ca, you've won more than cbOne Million "
  472.             tr 'cadollars! Adding you to the ceRegular Millionaires Listca!cb"'
  473.             call WL("ce A MILLIONAIREc9: caOne Million cfdollars in cbRegular Prize cfmoney!")
  474.             monwon=monwon-1000000;z=millionaires+1;do i=1 to millionaires
  475.               if index(mil.i,handle)~=0 then do;z=i;leave i;end
  476.             end i ; if z>millionaires then millionaires=z;mills=mills+1
  477.             if mills=mills3 then do;se 'n1c6After doing so, 'hostM' says, cb"caHey cd'handle"ca, you now have ce"mills3" MILLION cadollars! "
  478.               tr 'I''m adding you as our next cfALL TIME BEST WOF PLAYERca!cb"'
  479.               call WL("ce  A NEW BANKERc9: ca"mills3" MILLION cfdollars in cbRegular Prize cfmoney!")
  480.               mills=0 ; BFlag=1 ; zz=bankers+1;do i=1 to bankers
  481.                 if index(bil.i,handle)~=0 then do;zz=i;leave i;end
  482.               end i ; if zz>bankers then bankers=zz
  483.               t=btype.zz ; if t=2|t=3 then t=3 ; else t=1
  484.               if zz=bankers then bills.zz=mills3;else bills.zz=bills.zz+mills3
  485.               bil.zz=bills.zz'|'date'|'handle'|'t'|x'
  486.               if bankers>max3 then do;do i=2 to bankers+1 ; j=i-1 ; bil.j=bil.i ; end i
  487.                 bankers=max3 ; end;call SAVEBANKERS ; call READBANKERS ; mil.z=''
  488.               do i=1 to millionaires ; j=i+1
  489.                 if mil.i='' then do ; mil.i=mil.j ; mil.j='' ; end
  490.               end i ; millionaires=millionaires-1 ; end
  491.             if mills>0 then do;mil.z=mills'|'date'|'handle'|x'
  492.               if millionaires>mills1 then do
  493.                 do i=2 to mills1+1;j=i-1;mil.j=mil.i;end i
  494.               millionaires=mills1;end;end
  495.             call SAVEMILLIONAIRES;call READMILLIONAIRES;end
  496.         call SAVEWINNERS;call SAVEWINNER;call SAVESTATS;call SAVEPLAYERS
  497.         call WL("c9"right("ce"dateL,78,'-')"c9---");call BONUSROUND
  498.         t1=boncash+(bmills*1000000);t2=monwon+(mills*1000000)
  499.         if (resetM=2&t2>=resetV)|(resetM=4&t1+t2>=resetV)|(resetM=5&BFlag=1) then call RESETGAME
  500.         se 'n1c6Shaking your hand, 'hostM' tells you, cb"caAs the cfnewest cbWheel of '
  501.         tr 'Fortune ceWinnerca, you have to make a choice.cb"n1'
  502.         tr '>5cf1c9: ceCreate a cfNew Puzzle cefor use at a cdLATER cedate.n1'
  503.         tr '>5cf2c9: c6Let cd'bbsname' cbGenerate c6next puzzle.c7(cdDEFAULTc7)n1'
  504.         se 'cfWhat''s your choice, cd'handle'cf? ';gc;ga=result
  505.         if ga~='1' then signal GENERATE
  506.  
  507. MAKEPUZZLE:
  508.     tr 'ceI''ll make it!'
  509.     se 'n1cb"caOK, cd'handle'ca, Please enter your cePuzzleca:cb"c6, '
  510.     tr hostM' asks fervently.n1'
  511.     tr 'scfPuzzlec9:cai129 50}';gu 70;a=result;a=strip(a,'b')
  512.     if result='###PANIC' | result='' then signal GENERATE
  513.     if length(a)<9 then do
  514.         se 'c6Whispering in your ear, ca'hostF' c6tells you that '
  515.         se 'puzzle is cbtoo c6short.w2u';signal MAKEPUZZLE;end
  516.     se 'cb"ca'a'cb"n2cfIs this correct cd'handle'cf? (caYcf/cbncf)c9: '
  517.     gc;b=result;if result='###PANIC' then signal GENERATE
  518.     if b~='N' then do;tr 'caYes!';newpuz=a;end
  519.     if b='N' then do;se 'cbNo. ceTry Againw1u';signal MAKEPUZZLE;end
  520.     se 'n1cb"caNow enter a cfClue cafor your cfPuzzleca, cd'handle'cb"c6, '
  521.     tr hostM' guides you.n1'
  522. MAKECLUE:
  523.     tr 'scf  Cluec9:cei129 20}';gu 70;a=result;a=strip(a,'b')
  524.     if result='###PANIC' | result='' then signal GENERATE
  525.     if length(a)<3 then do
  526.         se 'n1c6Pinching your butt, ca'hostF' c6gives you the sign that '
  527.         se 'your clue is cbtoo c6short.w2u';signal MAKECLUE;end
  528.     se 'cb"ca'a'cb"n2cfIs this correct cd'handle'cf? (caYcf/cbncf)c9: '
  529.     gc;b=result;if result='###PANIC' then signal GENERATE
  530.     if b~='N' then do;tr 'caYes!';newclue=a;end
  531.     if b='N' then do;se 'cbNo. ceTry Againw1u';signal MAKECLUE;end
  532.     author=handle;a=exists(dfile'NewPuz')
  533.     if a=0 then call open(f1,dfile'NewPuz','w')
  534.     if a=1 then call open(f1,dfile'NewPuz','a')
  535.         z=newpuz'|'newclue'|'author'|x';call writeln(f1,z)
  536.     call close(f1);call WL("ca"handle" c6decided to ceMAKE c6a new puzzle...")
  537.     se 'n1c6'HostM' shakes your hand once again, cb"caThanks cd'handle'ca, we''ll be sure '
  538.     tr 'to use your puzzle sometime in the future.cb"'
  539.  
  540. GENERATE:
  541.     if ga~=1 then tr 'c6Generate cfNEW cePuzzlec6!'
  542.     call open(f1,dfile'PuzData','r');a=strip(readch(f1,5),'t',d2c(0))
  543.         if nextpuznum>a then nextpuznum=1
  544.         ptr=((nextpuznum*90)-90)+5;call seek(f1,ptr,'b')
  545.         p=strip(readch(f1,50),'t',d2c(0));c=strip(readch(f1,20),'t',d2c(0))
  546.         a=strip(readch(f1,20),'t',d2c(0));call close(f1);nextpuznum=nextpuznum+1
  547.     newpuz=translate(p,reverse(xrange('!','~')),xrange('!','~'))
  548.     newclue=translate(c,reverse(xrange('!','~')),xrange('!','~'))
  549.     author=translate(a,reverse(xrange('!','~')),xrange('!','~'))
  550.     if author='Pat & Vanna' then author=hosts
  551.     call WL("ca"handle" c6decided to let ce"bbsname" c6choose the next puzzle...")
  552.  
  553. GENERATE2:
  554.     puzplay=puzplay+1;consonants=0;vowels=0;guessed=''
  555.     do i=1 to length(newpuz);z=substr(newpuz,i,1)
  556.         if index(cons,z)>0 then consonants=consonants+1
  557.         if index(vows,z)>0 then vowels=vowels+1
  558.     end i;answer=newpuz;Lhan='No One';clue=newclue
  559.     puzzle=translate(answer,,xrange('A','Z'),'@');newlog=0;call SAVELOG
  560.     if exists(dfile'Log.OLD.ASC') then address command 'delete 'dfile'Log.OLD.ASC';address command 'rename 'dfile'Log.NEW.ASC 'dfile'Log.OLD.ASC'
  561.     if exists(dfile'Log.OLD.ANS') then address command 'delete 'dfile'Log.OLD.ANS';address command 'rename 'dfile'Log.NEW.ANS 'dfile'Log.OLD.ANS'
  562.     if exists(dfile'Log.OLD.IBM') then address command 'delete 'dfile'Log.OLD.IBM';address command 'rename 'dfile'Log.NEW.IBM 'dfile'Log.OLD.IBM'
  563.     call open(f1,dfile'LastPlayer','w');call writeln(f1,'0|No One|No Where|0|0|1|0|x');call close(f1)
  564.     log.1='cfNEW cbGame c6Started Onc9: cb'dateL;newlog=1
  565.     log.2='cf     The NEW Puzzlec9: ce'puzzle;log.3='cf    NEW Puzzle Cluec9: ca'clue
  566.     log.4='cf  NEW Puzzle Authorc9: cd'author;log.5='cc'right('cf'dateL,78,'=')'cc==='
  567.     logs=5;call SAVELOG;se 'n1cf'hostM' c6& ca'hostF' c6would like to cfThank You c6for playing '
  568.     se 'cbWheel of Fortune c6today, and hope to see you as a cacontestant '
  569.     tr 'c6again someday!n1';aut=author;call SAVEDATA
  570.     if play=1 & handle~=aut then do
  571.         se hostM' asks, cb"caWould you like to be the c9FIRST caplayer of the '
  572.         se 'cfNEW caGame cd'handle'ca?cb"n2c6(cayc6/cbNc6)cf: '
  573.         gc;a=result;if a='Y' then do;tr 'caYes!';signal BEGIN;end
  574.         else tr 'cbNo.';end
  575.     changewhere oldwh;signal QUIT3
  576.  
  577. BONUSROUND:
  578.     call WL("ca"handle" c6is eligible to play the cfBONUS Roundc6...")
  579.     se 'n1c6Would cbYOU c6like to caPlay c6the cfBonus Roundc6? c7[caYesc7]c6: ca';gc;a=result
  580.     if a='N' then do;tr 'No.';call WL("c6But ca"handle" c9declinesc6 playing! Why?!?");return;end
  581.     tr 'Yes!';call WL("cfAlrightc6, ca"handle" c6accepts the challenge...");changewhere "WOF Bonus Round"
  582.     if smart=2 then do;se 'n1c6Would cbYOU c6like to use cfSmart Bonus Lettersc6? c7[caNoc7]c6: ca'
  583.         gc;a=result;if a~='Y' then do;tr 'No.';smart=0;end;else do;tr 'Yes!';smart=1;end;end
  584.     call open(f1,dfile'PuzData','r');a=strip(readch(f1,5),'t',d2c(0))
  585.         if nextbonpuz<1 then nextbonpuz=a;npn=nextbonpuz
  586.         do until length(p)>=minB;ptr=((npn*90)-90)+5;call seek(f1,ptr,'b')
  587.         p=strip(readch(f1,50),'t',d2c(0));npn=npn-1;end
  588.         c=strip(readch(f1,20),'t',d2c(0));a=strip(readch(f1,20),'t',d2c(0))
  589.     call close(f1);newpuz=translate(p,reverse(xrange('!','~')),xrange('!','~'))
  590.     newclue=translate(c,reverse(xrange('!','~')),xrange('!','~'));answer=newpuz
  591.     author=translate(a,reverse(xrange('!','~')),xrange('!','~'));clue=newclue
  592.     puzzle=translate(answer,,xrange('A','Z'),'@');len=length(puzzle)
  593.     prize=random(100,500)*100;call CNUM(prize);let='RSTNLE'
  594.     tr 'f1>5c9┌────────────────────────────────────────────────────────────────┐'
  595.     tr '>5c9│cb>X<>X<>X<>X<>X<>X<r1ce Welcome to the Bonus Round r0cb>X<>X<>X<>X<>X<>X<c9│'
  596.     tr '>5c9└────────────────────────────────────────────────────────────────┘n1'
  597.     se 'c6'hostM' explains the cfBonus Roundc6, cb"caYou''ll be trying to solve a puzzle in a '
  598.     se 'set amount of time.  We''ll give you the letters ceRca, ceSca, ceTca, ceNca, ceLca, and ceEca.  '
  599.     se 'You will also be asked for c6threec7(c63c7) camore consonants, and c6onec7(c61c7) camore vowel. '
  600.     se 'If you can solve the cfBonus Puzzle cabefore time runs out, you''ll win '
  601.     tr 'today''s cbCash cdPrize caof c2$cb'a' cfbucksca!cb"n1'
  602.     if smart=0 & smartB>0 then do;call CNUM(smartB)
  603.         se 'c6If you select ceRc6, ceSc6, ceTc6, ceNc6, ceLc6, or ceE c6for one of your caAdditional c6letters, '
  604.         se 'and then cfSOLVE c6the cbBonus Puzzlec6, you will be awarded c2$cb'a' cfbucksc6, '
  605.         tr 'in addition to today''s cbCash cdPrizec6.n1';end
  606.     do ii=1 to 6;guess=substr(let,ii,1);call UNCOVER;end ii;call COLORPUZZLE
  607.     tr '>8c6The Bonus Puzzlec9: ce'translate(puzzle2,Hide,'@')'n1'
  608.     tr '>ac6The Bonus Cluec9: ca'clue;tr
  609. BROUND1:
  610.     se 'sc6Enter cathreec7(ca3c7) c6more cbconsonantsc9:cai4225 3}'
  611.     gu 70;a=result;ck=CHECK();a1=left(a,1);a2=substr(a,2,1);a3=substr(a,3,1);if a1="!"&MFlag=1 then do;tr 'n1'answer;signal BROUND1;end
  612.     if index(cons,a1)=0|index(cons,a2)=0|index(cons,a3)=0 then do;tr 'n1Please type THREE CONSONANTS now!w1u^1';signal BROUND1;end
  613.     if smart=1 & index(let,a1)~=0 then tr 'n1The consonant 'a1' was already given to you.w1u^1'
  614.     if smart=1 & index(let,a2)~=0 then tr 'n1The consonant 'a2' was already given to you.w1u^1'
  615.     if smart=1 & index(let,a3)~=0 then tr 'n1The consonant 'a3' was already given to you.w1u^1'
  616.     if smart=1 & (index(let,a1)~=0|index(let,a2)~=0|index(let,a3)~=0) then signal BROUND1;else tr
  617. BROUND2:
  618.     se 'sc6  Enter caonec7(ca1c7) c6more  cbvowel c6nowc9:cai4225 1}';gu 70;a4=result;ck=CHECK()
  619.     if index(vows,a4)=0 then do;tr 'n1Please type ONE VOWEL now!w1u^1';signal BROUND2;end
  620.     if smart=1 & a4='E' then do;tr 'n1The vowel E was already given to you.w1u^1';signal BROUND2;end
  621.     do ii=1 to 4;guess=substr(a1||a2||a3||a4,ii,1);call UNCOVER;end ii;call COLORPUZZLE
  622.     Bprize=0;do ii=1 to 4;if index(let,substr(guess,ii,1))>0 then Bprize=1;end ii
  623.     se 'n1c6'hostF' nudges 'hostM' to bring him out of his stupor, cb"caAlright, cd'handle'ca, '
  624.     se 'you will be given cf'timer' caseconds to solve the ceBonus Puzzleca! '
  625.     tr 'Press any key when you''re ready to c9Start cathe cfBonus Roundca!cb"n1'key1
  626.     tr 'f1>4c9┌──────────────────────────────────────────────────────────────────┐'
  627.     tr '>4c9│cc>X<>X<>X<>X<>X<>X<r1cf Can You Win the Bonus Round? r0cc>X<>X<>X<>X<>X<>X<c9│'
  628.     tr '>4c9└──────────────────────────────────────────────────────────────────┘n1'
  629.     se '>5c6The Bonus Prize isc9: c2$cb';call CNUM(prize);tr a' cfbucksc6!n1'
  630.     tr '>4c6Bonus Letters Givenc9: cdRce-cdSce-cdTce-cdNce-cdLce-cdEce-cd'a1'ce-cd'a2'ce-cd'a3'ce-cd'a4'n1'
  631.     tr '>6c6The Bonus Clue isc9: ca'clue'n1'
  632.     tr '>4c6The Bonus Puzzle isc9: 'translate(puzzle2,hide,'@')'n1'
  633.     t=timer;call time('r');z='';zz='';bf
  634.     if gibm=0 then do;se '>4c6Your Bonus Guess isc9: cd_'
  635. GUESS1:;maygetchar;a=result;ck=CHECK();if time('e')>=t then do;bf;signal OUTOFTIME;end
  636.     if a='NOCHAR' then signal GUESS1;if a=d2c(8) & z='' then signal GUESS1
  637.     if a=d2c(8)  & z~='' then do;z=left(z,length(z)-1);se 'h2_';signal GUESS1;end
  638.     if a=d2c(13) & z=answer then signal GOODGUESS;if a=d2c(13) & z~=answer then signal BADGUESS
  639.     zz=upper(a);z=z||zz;se 'h1cf'zz'cd_';signal GUESS1;end
  640.     if gibm=1 then do;tr '    c6Seconds Leftc9: ca'left(trunc(t-time('e'),1),4)' c9> cf'
  641. GUESS2:;se '19Hca'left(trunc(t-time('e'),1),4)' c9> cf'z'cd_ h1'
  642.     maygetchar;a=result;ck=CHECK();if time('e')>=t then do;bf;signal OUTOFTIME;end
  643.     if a='NOCHAR' then signal GUESS2;if a=d2c(8) & z='' then signal GUESS2
  644.     if a=d2c(8) & z~='' then do;z=left(z,length(z)-1);signal GUESS2;end
  645.     if a=d2c(13) & z=answer then signal GOODGUESS;if a=d2c(13) & z~=answer then signal BADGUESS
  646.     zz=upper(a);z=z||zz;signal GUESS2;end
  647.     if gibm=2 then do;pu=translate(puzzle,'@',hide);se ">4c6Your Bonus Guess isc9: cd_";solve='';c=1
  648. BASC1:;if c<=length(pu) then z=substr(pu,c,1);else z=""
  649.     if z~="@"&z~="" then do;solve=solve||z;se "h1cf"z"cd_";signal BASC3;end
  650. BASC2:;maygetchar;a=result;ck=CHECK();if time('e')>=t then do;bf;signal OUTOFTIME;end
  651.     if a='NOCHAR' then signal BASC2
  652.     if a=d2c(8) then do;if c=1 then signal BASC2;c=c-1
  653.         solve=left(solve,c-1);se "h2cd_";signal BASC2;end
  654.     if a=d2c(13) & solve=answer then signal GOODGUESS
  655.     if a=d2c(13) & solve~=answer then signal BADGUESS
  656.     solve=solve||upper(a);se "h1cf"upper(a)"cd_"
  657. BASC3:;c=c+1;signal BASC1;end
  658.     if gibm=3 then do;pu=translate(puzzle,'@',hide);pt=translate(pu,' ','@')
  659.     se ">4c6Your Bonus Guess isc9: cfs"pt"u";solve='';c=1
  660. BIBM1:;if c<=length(pu) then z=substr(pu,c,1);else z=""
  661.     if z~="@"&z~="" then do;solve=solve||z;se "cf"z;signal BIBM3;end;se "cd_"
  662. BIBM2:;maygetchar;a=result;ck=CHECK();if time('e')>=t then do;bf;signal OUTOFTIME;end
  663.     if a='NOCHAR' then signal BIBM2
  664.     if a=d2c(8) then do;if c=1 then signal BIBM2;c=c-1
  665.         solve=left(solve,c-1);se "h2cd_";signal BIBM2;end
  666.     if a=d2c(13) & solve=answer then signal GOODGUESS
  667.     if a=d2c(13) & solve~=answer then signal BADGUESS
  668.     solve=solve||upper(a);se "h1cf"upper(a)
  669. BIBM3:;c=c+1;signal BIBM1;end
  670.  
  671. OUTOFTIME:
  672.     call WL("ca"handle" c9ran out of time c6in the cfBonus Roundc6!");bf
  673.     se 'n2c6'hostM' looks at 'hostF' and frowns, cb"caI''m sorry cd'handle'ca, but '
  674.     se 'catime has run out.  Hopefully, we''ll see you in another cfBonus '
  675.     tr 'Roundca sometime soon!cb"n1'
  676.     if showB=2 | showB=4 then tr '   cfThe ceBonus Puzzle cfwasc9: cb'answer
  677.     tr key1;tr 'f1'
  678.   signal ENDBONUS
  679.  
  680. GOODGUESS:
  681.     if olm>0 then do;se "n2c6Sending cfOLM'sc6:ca   "
  682.         call SENDOLM("   cfCongratulations c6to cd"handle" c6who just c9SOLVED c6the cbWheel of Fortune cfBONUS cePuzzlec6!");end
  683.     call WL("cfCongratulations c6to ca"handle" c6who just cbSOLVED c6the cfBONUS Puzzlec6!");bf
  684.     se 'n2c6Jumping up and down, you grab 'hostF' in a bear hug and she squeals. '
  685.     se hostM' confronts you, cb"caCalm down cd'handle'ca, great job, you solved '
  686.     se 'today''s cfBonus Puzzleca, and win c2$cb';call CNUM(prize);tr a' cfbucks cadoing it!cb"n1'key1
  687.     tr 'f1c6'hostM' continues, cb"cd'handle'ca, you''ve also just won:cb"n1'
  688.     a=right(random(1,20),2,'0');tr '*6'dfile'Graphics/Prize'a'.ibm}n1'key1
  689.     prizes=prizes+1;prize.prizes=date'|'prize'|'bpPR'|'bpVA'|'Bprize'|'smartB'|'a'|x'
  690.     if prizes>20 then do;do i=1 to 21;j=i+1;prize.i=prize.j;end i;prizes=20;end;call SAVEWOF
  691.     if bpPR>0 then do;call CNUM(bpVA)
  692.         se 'n1c6For c9solving c6the ceBONUS c6Puzzle, cb'sysop' Broadcasting c6has decided '
  693.         se 'to give you ca'a' ce'pr.bpPR'c6!  Enjoy them!n1'key1
  694.         if bpPR=1 then addtime (bpVA);if bpPR=2 then addpoints (bpVA)
  695.         if bpPR=3 then do;gu 35;b=result;b=b+bpVA;setobject (b);putuser 35;end
  696.         if bpPR=4 then do;gu 34;b=result;b=b+bpVA;setobject (b);putuser 34;end
  697.         call WL("ca"handle" c6was awarded cf"a" c9"pr.bpPR"c6 for solving the ceBonus Puzzlec6!");end
  698.     if Bprize=1 & smartB>0 then do;call CNUM(smartB)
  699.         call WL("ca"handle" c6also won c2$cb"a" cfbucks c6from the ceSmart Bonus Prizec6!")
  700.         se 'n1c6You have also won c2$cb'a' cfbucks c6as the ceSmart Bonus Prize c6winner!n1'key1
  701.         boncash=boncash+smartB;end
  702.     bonwins=bonwins+1;boncash=boncash+prize;tr 'f1'
  703.     if bonwins>mostbwins then do;se 'n1c6'hostM' says, cb"cd'handle
  704.         tr 'ca, you c9broke cathe old cfMOST BONUS WINS caRecord!cb"'
  705.         call WL('ce  A NEW RECORDc9: cfWon the caMOST BONUS GAMES cdEVERcf!')
  706.         mostbwinsH=handle;mostbwins=bonwins;end
  707.     if boncash>mostbcash then do;se 'n1c6'hostM' says, cb"cd'handle
  708.         tr 'ca, you c9broke cathe old cfMOST BONUS CASH caRecord!cb"'
  709.         call WL('ce  A NEW RECORDc9: cfWon the caMOST BONUS CASH cdEVERcf!')
  710.         mostbcashH=handle;mostbcash=boncash;end
  711.     stats.5=mostbwinsH'|'mostbwins'|x';stats.6=mostbcashH'|'mostbcash'|x'
  712.     bwinner=handle'|'answer'|'date'|'prize'|'bonwins'|x';bwinners=bwinners+1
  713.     bwinner.bwinners=handle'|'answer'|'date'|'prize'|x';if bwinners>max2 then do
  714.         do i=2 to max2+1;j=i-1;bwinner.j=bwinner.i;end i;bwinners=max2;end
  715.     if boncash>=1000000 then do
  716.         se 'n1c6'hostM' says, cb"cd'handle"ca, you've won more than cbOne Million "
  717.         tr 'cadollars! Adding you to the ceBonus Round Millionaires Listca!cb"'
  718.         call WL("ce A MILLIONAIREc9: caOne Million cfdollars in cbBONUS Prize cfmoney!")
  719.         boncash=boncash-1000000;z=bmillionaires+1;do i=1 to bmillionaires
  720.           if index(bmil.i,handle)~=0 then do;z=i;leave i;end
  721.         end i ; if z>bmillionaires then bmillionaires=z;bmills=bmills+1
  722.         if bmills=mills3 then do;se 'n1c6After doing so, 'hostM' says, cb"caHey cd'handle"ca, you now have ce"mills3" MILLION cadollars! "
  723.           tr 'I''m adding you as our next cfALL TIME BEST WOF PLAYERca!cb"'
  724.           call WL("ce  A NEW BANKERc9: ca"mills3" MILLION cfdollars in cbBonus Prize cfmoney!")
  725.           bmills=0 ; BFlag=1 ; zz=bankers+1;do i=1 to bankers
  726.             if index(bil.i,handle)~=0 then do;zz=i;leave i;end
  727.           end i ; if zz>bankers then bankers=zz
  728.           t=btype.zz ; if t=1|t=3 then t=3 ; else t=2
  729.           if zz=bankers then bills.zz=mills3;else bills.zz=bills.zz+mills3
  730.           bil.zz=bills.zz'|'date'|'handle'|'t'|x'
  731.           if bankers>max3 then do;do i=2 to bankers+1 ; j=i-1 ; bil.j=bil.i ; end i
  732.             bankers=max3 ; end;call SAVEBANKERS ; call READBANKERS ; bmil.z=''
  733.           do i=1 to bmillionaires ; j=i+1
  734.             if bmil.i='' then do ; bmil.i=bmil.j ; bmil.j='' ; end
  735.           end i ; bmillionaires=bmillionaires-1 ; end
  736.         if bmills>0 then do;bmil.z=bmills'|'date'|'handle'|x'
  737.           if bmillionaires>mills2 then do
  738.             do i=2 to mills2+1;j=i-1;bmil.j=bmil.i;end i
  739.             bmillionaires=mills2;end;end
  740.         call SAVEBMILLIONAIRES;call READBMILLIONAIRES;end
  741.     call SAVESTATS;call SAVEBWINNER;call SAVEBWINNERS;call SAVEPLAYERS
  742.   signal ENDBONUS
  743.  
  744. BADGUESS:
  745.     call WL("ca"handle" c9incorrectly guessed c6the cfBonus Puzzlec6!");bf
  746.     se 'n2c6Looking at the white card in his hand, 'hostM' walks over to you, cb"caI''m '
  747.     se 'sorry cd'handle'ca, but that''s an incorrect guess of this cfBonus '
  748.     tr 'Puzzleca. Better luck next time, eh?cb"n1'
  749.     if showB=3 | showB=4 then tr '   cfThe ceBonus Puzzle cfwasc9: cb'answer'n1'
  750.     tr key1;tr 'f1'
  751.   signal ENDBONUS
  752.  
  753. ENDBONUS:
  754.     call READDATA;nextbonpuz=npn-1;call SAVEDATA;changewhere "WOF IBM Game"
  755.     t1=boncash+(bmills*1000000);t2=monwon+(mills*1000000);if (resetM=3&t1>=resetV)|(resetM=4&t1+t2>=resetV)|(resetM=5&BFlag=1)           then call RESETGAME
  756.    return
  757.  
  758. CANCELGAME: /* SysOp Command; Cancels & AutoGenerates a NEW Game */
  759.     tr 'n1c6'hostM' asks, cb"caYou really want to c9CANCEL cathis Game?cb"'
  760.     se 'n1c6(cayc6/cbNc6) cf>>>---> ';call COLORPUZZLE
  761.     gc;a=result;if a~='Y' then do;tr 'cbNo!';signal MAIN;end
  762.     call WL("z4cf   "sysop" has decided to c9CANCEL cfthis game! (Errors?)  z0n1")
  763.     call WL("cf     The Puzzle Wasc9: ce"puzzle2"n1")
  764.     call WL("cf     The Answer Wasc9: ca"answer"n1")
  765.     tr 'caYes!n1';signal GENERATE
  766.  
  767. COUNT:
  768.     tot=0;len=length(answer)
  769.     do i=1 to len;a=substr(answer,i,1)
  770.     if guess=a then tot=tot+1;end i
  771.   return
  772.  
  773. UNCOVER:
  774.     do i=1 to len;z=substr(answer,i,1)
  775.     if guess=z then puzzle=overlay(guess,puzzle,i,1);end i
  776.   return
  777.  
  778. SHOWPUZZLE:
  779.     tr 'cf Current Puzzlec9: 'translate(puzzle2,Hide,'@')
  780.     tr 'cf    Puzzle Cluec9: ca'clue
  781.     tr 'cfGuessed Lettersc9: cd'guessed2
  782.   return
  783.  
  784. COLORPUZZLE:
  785.     a='';do i=1 to length(puzzle);b=substr(puzzle,i,1)
  786.     if b='@' then a=a'ce@';else a=a'cb'||b
  787.     end i;puzzle2=a
  788.   return
  789.  
  790. COLORGUESSED:
  791.     a='';do i=1 to length(guessed);b=substr(guessed,i,1)
  792.     if b='-' then a=a'ce-';else a=a'cd'||b
  793.     end i;guessed2=a
  794.   return
  795.  
  796. CNUM: /* Comma Number Parser (Place commas inside numbers) */
  797.     parse arg a;b=length(a);if b=4 then a=insert(',',a,1,1)
  798.     if b=5 then a=insert(',',a,2,1);if b=6 then a=insert(',',a,3,1)
  799.     if b=7 then do;a=insert(',',a,1,1);a=insert(',',a,5,1);end
  800.   return
  801.  
  802. SAVELASTPLAYER:
  803.     a=sid'|'handle'|'street'|'voice'|'data'|'right(date('s'),2)'|'left(time(),2)'|x'
  804.     call open(f1,dfile'LastPlayer','w');call writeln(f1,a);call close(f1)
  805.   return
  806.  
  807. READLASTPLAYER:
  808.     call open(f1,dfile'LastPlayer','r');a=readln(f1);call close(f1)
  809.     parse var a Lsid'|'Lhan'|'Lstr'|'Lvoi'|'Ldat'|'Lday'|'Lhrs'|'j
  810.     cd=right(date('s'),2);ch=left(time(),2);el=(((cd-Lday)*24)+(ch-Lhrs))
  811.     Lflag=0;Mflag=0
  812.     if Last=0 & (sid=Lsid | handle=Lhan) then Lflag=1
  813.     if Last=1 & (sid=Lsid | handle=Lhan | street=Lstr | voice=Lvoi | data=Ldata) then Lflag=1
  814.  
  815.     if maint=1 & sid=1 then Mflag=1;if maint=2 & access=23 then Mflag=1
  816.     if maint=3 & access=31 then Mflag=1;if maint=4 & maintA>0 then Mflag=1
  817.   return
  818.  
  819. WL:;parse arg log;logs=logs+1;log.logs=log;return
  820.  
  821. SAVELOG:
  822.     a='ANS IBM ASC';if newlog=0 then se 'n1cbSaving cdGame ceLogsc6...cb'
  823.         else se 'n1cfCreating c9NEW ceLogsc6... cf'
  824.     do i=1 to 3;b=subword(a,i,1);f='Log.NEW.'||b
  825.         call open(f1,dfile||f,substr('wa',exists(dfile||f)+1,1))
  826.             do j=1 to logs;if i=1 then call writeln(f1,log.j)
  827.                 if i=2 then call writeln(f1,translate(log.j,'─═','-='))
  828.                 if i=3 then do;do until c=0;c=index(log.j,'')
  829.                     if c>0 then log.j=delstr(log.j,c,3);end;call writeln(f1,log.j);end
  830.             end j;call close(f1)
  831.     end i;tr 'h8h8ed!'
  832.   return
  833.  
  834. HOFAME:
  835.     call WL("ca"handle" c6viewed the cfHALL OF FAMEc6!")
  836.     tr 'f1n1c6'hostM' says, cb"caHere are the cfHigh Scores cd'handle'ca!cb"n1'
  837.     tr "cf     Hc7igh cfSc7corer's cfHc7andle       ceHc6igh ceSc6core ceBc6roken       cbScacore cbTcao cbBcaeat"
  838.     tr "c9    ══════════════════════   ═══════════════════════   ═══════════════"
  839.     tr 'cf'right(mostplaysH,25)'ce        Most Games EVER           cb'mostplays;call CNUM(mostbank)
  840.     tr 'c7'right(mostbankH,25)' c6       Most Money EVER          c2$ca'a
  841.     tr 'cf'right(mostpuzsH,25)' ce       Most Games EVER           cb'mostpuzs;call CNUM(mostcash)
  842.     tr 'c7'right(mostcashH,25)' c6    Most Money In 1  Game       c2$ca'a
  843.     tr 'cf'right(mostbwinsH,25)'ce     Most BONUS Games EVER        cb'mostbwins;call CNUM(mostbcash)
  844.     tr 'c7'right(mostbcashH,25)'c6     Most BONUS Cash  EVER       c2$ca'a
  845.     tr 'c9    ══════════════════════   ═══════════════════════   ═══════════════n1'
  846.     se 'Cc6View caAll Time Best WOF Player cbListings c6Now? c9[cfYesc9]c6: cf';gc;a=result
  847.     if a='N' then do;tr 'No.';return;end;else do;tr 'Yes!';call BANKERS;end
  848.   return
  849.  
  850. YOURSTATS:
  851.     z1st='No.';do i=1 to bankers;if index(bil.i,handle)~=0 then do;z1st='Yes!';z=i;leave i;end;end i
  852.     z2st='No.';do i=1 to millionaires;if index(mil.i,handle)~=0 then do;z2st='Yes!';leave i;end;end i
  853.     if z2st='No.'&z1st='Yes!'&(btype.z=1|btype.z=3) then z2st='Not Presently!'
  854.     z3st='No.';do i=1 to bmillionaires;if index(bmil.i,handle)~=0 then do;z3st='Yes!';leave i;end;end i
  855.     if z3st='No.'&z1st='Yes!'&(btype.z=2|btype.z=3) then z3st='Not Presently!'
  856.     call WL("ca"handle" c6viewed current cbGAME STATSc6!")
  857.     tr 'f1n1c6'hostM' says, cb"caHere are your stats cd'handle'ca!cb"n1'
  858.     tr '                        ceWc6inning ceSc6tatistics    cbScacore'
  859.     tr 'c9  ═════════════════════════════════════════  ══════════'
  860.     tr 'ce         Total Number of Games You Have Wonc9:  cb'puzwon
  861.     tr "c6    Percentage of Times You've Won the Gamec9:  cd"percent'cf%';call CNUM(monwon)
  862.     tr 'ce         Total Amount of Money You Have Wonc9: c2$ca'a
  863.     tr 'c6        Are you an All Time Best WOF Playerc9:  cd'z1st'n1'
  864.     tr '                  ceRc6egular ceRc6ound ceSc6tatistics    cbScacore'
  865.     tr 'c9  ═════════════════════════════════════════  ══════════'
  866.     tr 'ce            Currently Playing Puzzle Numberc9:  cb'puznum
  867.     tr 'c6      Total Number of Games You Have Playedc9:  ce'played
  868.     tr 'ce        Are you a Regular Round Millionairec9:  cd'z2st'n1'
  869.     tr '                    ceBc6onus ceRc6ound ceSc6tatistics    cbScacore'
  870.     tr 'c9  ═════════════════════════════════════════  ══════════'
  871.     tr 'ce         Total Number of BONUS Games Playedc9:  cb'bonwins;call CNUM(boncash)
  872.     tr "c6         Total BONUS Prize Money You've Wonc9: c2$ca"a
  873.     tr 'ce          Are you a Bonus Round Millionairec9:  cd'z3st
  874.     if prizes>0 then do;se 'n1  c6Want to caview c6your cbPrize cdHistory c6now? c7[cbNoc7]c9:  ';gc;a=result
  875.       if a~='Y' then do;tr 'cbNoc6.';return;end;else tr 'caYesc6!';call MORE1
  876.       do i=1 to prizes ; parse var prize.i d1'|'d2'|'d3'|'d4'|'d5'|'d6'|'d7'|'j
  877.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  878.         se 'f1c6Datec9: cf'd'c6, Bonus Cashc9: c2$ca';call CNUM(d2);se a'c6, ';call CNUM(d6)
  879.         if d5=1 then se 'Smart Bonusc9: c2$ca'a'c6, ';call CNUM(d4)
  880.         if d3>0 then se 'SysOp Bonusc9: cb'a' cd'word('MINUTES GAMEPOINTS BYTECREDITS FILECREDITS',d3)'c6, '
  881.         tr 'and you also wonc9:n1*0 'dfile'Graphics/Prize'd7'.ibm}n1'
  882.         if i<prizes then do;se 'cb'i' c6of cb'prizes' c6total prizes. c7<cdQc7>cduitc6, or caany other key c6to continue...';gc;a=result
  883.           if a='Q' then do;tr 'c6Quit';leave i;end;else tr 'caContinue';end
  884.       end i;call MORE0;end;tr key1
  885.   return
  886.  
  887. ALLSCORES:
  888.     call WL("ca"handle" c6viewed cdALL PLAYER SCORESc6!")
  889.     tr 'f1n1c6'hostM' says, cb"caHere are c9ALL caof the cfScores cd'handle'ca!!cb"n1'
  890.     tr 'z7c4 Wheel of Fortune     Total    Money  Play   Money  Max  Win Bon.    Bonus R Bz0'
  891.     tr 'z7c4 Player Alias(Handle)  Wins   Earned  Puz#     Now Play    % Wins Earnings M Mz0'
  892.     tr 'c9═══════════════════════════════════════════════════════════════════════════════'
  893.     parse var player.player d1'|'d2'|'d3'|'d4'|'d5'|'d6'|'d7'|'d8'|'d9'|'d10'|'d11'|'j
  894.     call CNUM(d3);a1=a;call CNUM(d5);a2=a;call CNUM(d9);a3=a;zy=0;zz=0
  895.     if d10>0 then zy=d10;if d11>0 then zz=d11
  896.     se "cbr1*"right(d1,20)" "right(d2,4)"  "right("$"a1,8)"  "right(d4,4)" "
  897.     tr right("$"a2,7)" "right(d6,4)" "right(d7"%",4)" "right(d8,3)"  "right("$"a3,8)" "zy" "zz"r0"
  898.     do i=1 to players;se 'ca';if i//2=0 then se 'cb'
  899.         if i=player then z='r1*';else z=' '
  900.         parse var player.i d1'|'d2'|'d3'|'d4'|'d5'|'d6'|'d7'|'d8'|'d9'|'d10'|'d11'|'j
  901.         call CNUM(d3);a1=a;call CNUM(d5);a2=a;call CNUM(d9);a3=a;zy=0;zz=0
  902.         if d10>0 then zy=d10;if d11>0 then zz=d11
  903.         se z||right(d1,20)" "right(d2,4)"  "right("$"a1,8)"  "
  904.         se right(d4,4)" "right("$"a2,7)" "right(d6,4)" "right(d7"%",4)" "
  905.         tr right(d8,3)"  "right("$"a3,8)" "zy" "zz"r0";if i//15=0 then do
  906.         se 'cf>>>--cdEntercf-->';gc;a=result;if a=d2c(13) then se 'hd'
  907.         else do;tr ' ccAbort';leave i;end;end;end i
  908.     tr 'c9═══════════════════════════════════════════════════════════════════════════cf│c9═ce│c9═'
  909.     tr "CcfMillions Won in Regular Rounds ───┘ ce│"
  910.     tr "CceMillions Won in Bonus   Rounds ─────┘";tr key1
  911.   return
  912.  
  913. LASTPUZS:;call MORE1
  914.     call WL("ca"handle" c6viewed the ceLAST "max1" WINNERSc6!")
  915.     tr 'f1c6'hostM' says, cb"caHere are the ceLast 'max1' Winnersca, cd'handle'ca!cb"n1'
  916.     tr 'CcfWho Solved It!CcbThe Date Solvedn1CcdThe Puzzle Text'
  917.     tr 'Cc9═════════════════════════ ═══════════════════════════';do i=1 to winners;d1=windate.i
  918.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  919.         tr 'Ccf'left(winhan.i,25)'cb'd'n1Ccd'winpuz.i
  920.     end i;tr 'Cc9═════════════════════════════════════════════════════';tr key1;call MORE0
  921.   return
  922.  
  923. BONUSPUZS:;call MORE1   /* Display Last "max2" Bonus Puzzles */
  924.     call WL("ca"handle" c6viewed the ceLAST "max2" BONUS WINNERSc6!")
  925.     tr 'f1c6'hostM' says, cb"caHere are the ceLast 'max2' c9Bonus Puzzle ceWinnersca, cd'handle'ca!cb"n1'
  926.     tr 'CcfWho Solved It!CcbThe Date SolvedCc2Bcaonus c2Pcarizen1CcdThe Puzzle Text'
  927.     tr 'Cc9═════════════════════════ ═════════════════════ ═════════════'
  928.     do i=1 to winners;d1=windate.i;call CNUM(bwincash.i)
  929.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  930.         tr 'Ccf'left(bwinhan.i,25)'cb'left(d,22)'c2$ca'a'n1Ccd'bwinpuz.i
  931.     end i;tr 'Cc9═════════════════════════════════════════════════════════════';tr key1;call MORE0
  932.   return
  933.  
  934. MILLIONAIRES:;call MORE1
  935.     if logmil=0 then call WL("ca"handle" c6viewed the ceRegular cfMILLIONAIRES c6listing!")
  936.     tr 'f1n1c6'hostM' says, cb"caThese players won a million dollars in Regular Play!cb"n1'
  937.     tr "cc░░░░░░░░░░░░░░░░░░░░░░░░░z0cfr1 Regular Game Millionaires r0cc░░░░░░░░░░░░░░░░░░░░░░░░░n1"
  938.     tr "CceMc6illionaire's ceHc6andle   cbWc3hen cbTc3hey cbMc3ade cbIc3t    caTc2otal caWc2orth"
  939.     tr "Cc9══════════════════════ ════════════════════ ═════════════"
  940.     do i=1 to millionaires;c1='e6b3a2';if i/2=i%2 then c=2;else c=1
  941.         se 'Cc'substr(c1,c,1)right(milhan.i,21)'   ' ; d1=mildate.i
  942.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', '
  943.         d=d||left(d1,4) ; se 'c'substr(c1,c+2,1)left(d,21)
  944.         tr 'c'substr(c1,c+4,1)mills.i' Million'
  945.     end i ; tr "Cc9══════════════════════ ════════════════════ ═════════════" ; tr key1;call MORE0
  946.   return
  947.  
  948. BMILLIONAIRES:;call MORE1
  949.     if logmil=0 then call WL("ca"handle" c6viewed the ceBonus cfMILLIONAIRES c6listing!")
  950.     tr 'f1n1c6'hostM' says, cb"caThese players won a million dollars in Bonus Play!cb"n1'
  951.     tr "cc░░░░░░░░░░░░░░░░░░░░░░░░░z0cfr1 Bonus Round Millionaires r0cc░░░░░░░░░░░░░░░░░░░░░░░░░░n1"
  952.     tr "CceMc6illionaire's ceHc6andle   cbWc3hen cbTc3hey cbMc3ade cbIc3t    caTc2otal caWc2orth"
  953.     tr "Cc9══════════════════════ ════════════════════ ═════════════"
  954.     do i=1 to bmillionaires;c1='e6b3a2';if i/2=i%2 then c=2;else c=1
  955.         se 'Cc'substr(c1,c,1)right(bmilhan.i,21)'   ' ; d1=bmildate.i
  956.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', '
  957.         d=d||left(d1,4) ; se 'c'substr(c1,c+2,1)left(d,21)
  958.         tr 'c'substr(c1,c+4,1)bmills.i' Million'
  959.     end i;tr "Cc9══════════════════════ ════════════════════ ═════════════" ; tr key1;call MORE0
  960.   return
  961.  
  962. BANKERS:;call MORE1
  963.     if logmil=0 then call WL("ca"handle" c6viewed the cfBANKERS c6listing!")
  964.     tr 'f1n1c6'hostM' says, cb"caThese players won ceMORE THAN caone million dollars in play!cb"n1'
  965.     tr "cc░░░░░░░░░░░░░░░░░░░░░░░░░z0cfr1 All Time Best WOF Bankers r0cc░░░░░░░░░░░░░░░░░░░░░░░░░n1"
  966.     tr " ceMc6illionaire's ceHc6andle   cbWc3hen cbTc3hey cbMc3ade cbIc3t    cdHc5ow cdTc5hey cdMc5ade cdIc5t   caTc2otal caWc2orth"
  967.     tr "c9══════════════════════ ════════════════════ ══════════════════ ═════════════"
  968.     do i=1 to bankers;c1='e6b3d5a2';if i/2=i%2 then c=2;else c=1
  969.         se 'c'substr(c1,c,1)right(bilhan.i,21)'   ' ; d1=bildate.i
  970.         d=date('m',d1,'s')' 'strip(right(d1,2),'l','0')', 'left(d1,4)
  971.         se 'c'substr(c1,c+2,1)left(d,21)'c'substr(c1,c+4,1);z='';if btype.i=3 then z='s'
  972.         se left(word("Neither Regular Bonus Both",btype.i+1)" Round"z,19)
  973.         tr 'c'substr(c1,c+6,1)bills.i' Million' ; end i
  974.     tr "c9══════════════════════ ════════════════════ ══════════════════ ═════════════" ; tr key1;call MORE0
  975.   return
  976.  
  977. DOCS:;call WL("ca"handle" c6viewed the ccINSTRUCTIONSc6!")
  978.     tr '*4'dfile'Docs.IBM}'
  979.   return
  980.  
  981. CHECK: /* Did we Lose Carrier in the Game? */
  982.     getcarrier;if result="TRUE" then return 1
  983.     tr 'n1No Carrier!';logentry 'No Carrier in WOF 'ver'!'
  984.     call WL("ca"handle" c9Lost Carrier c6during the game!")
  985.   signal QUIT2
  986.  
  987. QUIT:;se 'n1c6You cfreally c6wish to cbQUITc6? (caYc6/cbnc6)c9: '
  988.     gc;a=result;if a='N' then do;tr 'cbNo.';return;end
  989.     tr 'caYes!';call SAVEPLAYERS;call SAVEDATA;bad=1
  990. QUIT2:;call WL("ca"handle" cf"action"cbWheel of Fortune, "ver"!")
  991.     call WL("c9"right('ce'dateL,78,'-')'c9---')
  992.     logentry 'cf'action'cbWheel of Fortunecf, ce'ver'cf!'
  993.     if Lhan=handle then call SAVELASTPLAYER
  994.     newlog=0;call SAVELOG;bf;changewhere oldwh
  995.     getcarrier;if result="FALSE" then exit
  996.     if badGM=2&badG=2&bad<0 then do
  997.       se "n1caReEnter cbWheel of Fortune c6now? c7[cbNoc7]c9: ";gc;a=result
  998.       if a="Y" then do;tr 'caYesc6!';signal BEGIN;end;else tr 'cbNoc6.';end
  999.     if (badGM=1|(badGM=2&badG=1))&bad<0 then signal BEGIN
  1000. QUIT3:;if exists(dfile'Reg.IBM') then tr 'f1L70 #'center(resetH,20)'}*0'dfile'Reg.IBM}'key1
  1001.     call MUFFLE;call MONITOR;call MORE;exit
  1002.  
  1003. MENU: /* Main Menu for Wheel of Fortune */
  1004.     tr 'f1Cc9╔═════════════════════════════════════════════════════════════════╗'
  1005.     tr 'Cc9║ cfWOF ce'left(ver,5)'                             cb'right(vdate,25)' c9║'
  1006.     tr 'Cc9║                                                                 c9║'
  1007.     tr 'Cc9║'center('c6The letter cb"caYcb" 'word("c9ISN'T cfIS",yvow+1)' c6a ceVowel c6in this game!',89)'c9║'
  1008.     tr 'Cc9║                                                                 c9║'
  1009.     a=copies('░',28)'cfr1 The Wheel Of Fortune Main Menu! r0cc'copies('░',28)
  1010.     tr 'Cc9║cc'center(a,77)'c9║'
  1011.     tr 'Cc9║                                                                 c9║'
  1012.     tr 'Cc9║  c6Completely cfReWritten c6byc9: cdDotoran c6of cbFrontiers c6(cd716c6)/cb823c6-cb9892c6!  c9║'
  1013.     tr 'Cc9║                                                                 ║'
  1014.     a=copies('░',28)'cfr1 'bbsname' r0cc'copies('░',28)
  1015.     tr 'Cc9║cc'center(a,77)'c9║'
  1016.     tr 'Cc9║                                                                 ║'
  1017.     tr 'Cc9║   cf<caHcf>caall of Fame       cf<cePcf>celay cbWOF ceGame     cf<caVcf>caiew Game Logs     c9║'
  1018.     tr 'Cc9║   cf<ceYcf>ceour Game Stats    cf<caLcf>caast 'left(max1' Puzzles',10)'   cf<ceScf>ceee Millionaires   c9║'
  1019.     tr 'Cc9║   cf<caAcf>call Player Stats   cf<ceBcf>ceonus Puzzles     cf<caIcf>canstructions       c9║'
  1020.     if Mflag=1 then tr 'Cc9║   c7<c9Cc7>c9ancel This Game   c7<cd?c7>cd????? Command    c7<cbMc7>cbaintenance!       c9║'
  1021.     tr 'Cc9║                                                                 ║'
  1022.     tr 'Cc9║   cf<ceUcf>ceser Config Edit                       cf<cdQcf>cduit the Game      c9║'
  1023.     tr 'Cc9╚═════════════════════════════════════════════════════════════════╝'
  1024.     tr center('c6Last cbWheel of Fortune cfMasterc9: ce'resetH,78+15)'n1'
  1025.     tr center('c6The Last Player Wasc9: ca'Lhan,78+9)
  1026.   return
  1027.  
  1028. READCONFIG: /* Read "ConfigData" file. Holds info on game settings. */
  1029.     call open(f1,'pfiles:WoFortune.Config','r')
  1030.         v=readln(f1);parse var v j ver vdate;j=readln(f1);dfile=readln(f1)
  1031.         j=readln(f1);parse var j closed'|'j'|'Lpor'|'Hpor'|'j
  1032.         j=readln(f1);parse var j hosts'|'hostM'|'hostF'|'j
  1033.         do 4;j=readln(f1);end;a1=readln(f1);a2=readln(f1)
  1034.         parse var a1 m1'|'k1'|'j;parse var a2 m2'|'k2'|'j
  1035.         a=index(upper(k1),'[H]');if a~=0 then k1=left(k1,a-1)hosts||substr(k1,a+3)
  1036.         a=index(upper(k1),'[M]');if a~=0 then k1=left(k1,a-1)hostM||substr(k1,a+3)
  1037.         a=index(upper(k1),'[F]');if a~=0 then k1=left(k1,a-1)hostF||substr(k1,a+3)
  1038.         a=index(upper(k2),'[H]');if a~=0 then k2=left(k2,a-1)hosts||substr(k2,a+3)
  1039.         a=index(upper(k2),'[M]');if a~=0 then k2=left(k2,a-1)hostM||substr(k2,a+3)
  1040.         a=index(upper(k2),'[F]');if a~=0 then k2=left(k2,a-1)hostF||substr(k2,a+3)
  1041.         Gdata=readln(f1);Bdata=readln(f1)
  1042.         parse var Gdata resetM'|'resetV'|'badGM'|'Play'|'Last'|'j'|'hide'|',
  1043.                         j'|'zero'|'max1'|'vannaA'|'maint'|'max3'|'mills1'|',
  1044.                         mills2'|'mills3'|'chance'|'newplay'|'slow'|',
  1045.                         Banked'|'olmM'|'yvow'|'suPR1'|'suVA1'|'suPR2'|',
  1046.                         suVA2'|'suPR3'|'suVA3'|'j
  1047.         parse var Bdata timer'|'max2'|'minB'|'smart'|'showB'|'smartB'|',
  1048.                         puPR1'|'puVA1'|'puPR2'|'puVA2'|'puPR3'|'puVA3'|',
  1049.                         bpPR1'|'bpVA1'|'bpPR2'|'bpVA2'|'bpPR3'|'bpVA3'|'j
  1050.     call close(f1);gu 1;handle=result;gu 23;port=result
  1051.     if open(f1,dfile'LastReset','r') then do;resetD=readln(f1);resetH=readln(f1);call close(f1);end
  1052.       else do;resetD=19950625;resetH="No One Yet!";end
  1053.     gu 1100454;oldmore=result;gu 1101745;muffle=result;gu 1101746;monitor=result
  1054.     if closed=1 then signal CLOSED;call CHECKPORTS
  1055.     gv='2306098 2122050 2307346 1101743';parse var gv v1 v2 v3 v4;gu 39;md='mail:users/'result'/_WOF';call READWOF
  1056.     p1=1;if cnet=1 then do;v1=v3;v2=v4;p1=0;end;tr 'f1n6cbWheel Of Fortunec6, cf'ver
  1057.     if muffle=0 then bbscommand 'mu *';if monitor=1 then bbscommand 'um *'
  1058.     if olm=2&olmM=2 then do;se 'n1c6Send an cfOLM cbAlerting c6others? c7[caNoc7]c6: ca'
  1059.         gc;a=result;if a~='Y' then do;tr 'No.';olm=0;end;else tr 'Yes!';end
  1060.     if olm=0|olmM=0 then do;se 'c6n1Loading...';signal READCONFIG2;end
  1061.     getuser 1100461;sex=result;pro='he';if sex=0 then pro='she'
  1062.     text="   cd"handle" c6on cePort cf"port" c6is playing cbWheel of Fortune cf"ver"c6, and won't "
  1063.     text=text"be able to receive caOLM's c6from you until "pro" is c9finished "
  1064.     text=text"c6playing!    ce<<z5cf "hosts" z0ce>>"
  1065.     se "q1n1OLM to Port:   ";call SENDOLM(text);se 'n2Loading...'
  1066. READCONFIG2:
  1067.     call open(f1,dfile'PuzData','r');total=strip(readch(f1,5),'t',d2c(0));call close(f1)
  1068.     pr.1='Extra Minutes';pr.2='Game Points';pr.3='Byte Credits';pr.4='File Credits'
  1069.     puPR=puPR1;puVA=puVA1;bpPR=bpPR1;bpVA=bpVA1;puPR4=0;puVA4=0;bpPR4=0;bpVA4=0
  1070.     InfTimeR=0;gu 1200684;if result=0 then InfTimeR=1;InfGameP=0;gu 21;if result>999999 then InfGameP=1
  1071.     gu 1200016;age=result;gu 1100663;a=result;a=a+(1-sign(sign(a)+1))*256
  1072.     InfFileC=bittst(d2c(a),6);InfByteC=bittst(d2c(a),7);a=0;b=0
  1073.     if puPR=1 & InfTimeR=1 then a=2;if puPR=2 & InfGameP=1 then a=2
  1074.     if puPR=3 & InfByteC=1 then a=2;if puPR=4 & InfFileC=1 then a=2
  1075.     if a=2 then do;puPR=puPR2;puVA=puVA2
  1076.         if puPR=1 & InfTimeR=1 then a=3;if puPR=2 & InfGameP=1 then a=3
  1077.         if puPR=3 & InfByteC=1 then a=3;if puPR=4 & InfFileC=1 then a=3;end
  1078.     if a=3 then do;puPR=puPR3;puVA=puVA3
  1079.         if puPR=1 & InfTimeR=1 then a=4;if puPR=2 & InfGameP=1 then a=4
  1080.         if puPR=3 & InfByteC=1 then a=4;if puPR=4 & InfFileC=1 then a=4;end
  1081.     if a=4 then do;puPR=puPR4;puVA=puVA4;end
  1082.     if bpPR=1 & InfTimeR=1 then b=2;if bpPR=2 & InfGameP=1 then b=2
  1083.     if bpPR=3 & InfByteC=1 then b=2;if bpPR=4 & InfFileC=1 then b=2
  1084.     if b=2 then do;bpPR=bpPR2;bpVA=bpVA2
  1085.         if bpPR=1 & InfTimeR=1 then b=3;if bpPR=2 & InfGameP=1 then b=3
  1086.         if bpPR=3 & InfByteC=1 then b=3;if bpPR=4 & InfFileC=1 then b=3;end
  1087.     if b=3 then do;bpPR=bpPR3;bpVA=bpVA3
  1088.         if bpPR=1 & InfTimeR=1 then b=4;if bpPR=2 & InfGameP=1 then b=4
  1089.         if bpPR=3 & InfByteC=1 then b=4;if bpPR=4 & InfFileC=1 then b=4;end
  1090.     if b=4 then do;bpPR=bpPR4;bpVA=bpVA4;end
  1091.   return
  1092.  
  1093. READWOF:;if open(f1,md,'r') then do;config=readln(f1);do i=1 until eof(f1)
  1094.   prize.i=readln(f1);end i;prizes=i-1;call close(f1)
  1095.   parse var config olm'|'shomil'|'shobmi'|'shoban'|'vanna'|'OLog'|'NLog'|',
  1096.   wasc'|'wans'|'spin'|'gasc'|'gans'|'gibm'|'badG'|'j;return;end
  1097.   else do;call open(f1,md,'w');call writeln(f1,'0|0|0|0|1|0|0|0|1|2|0|2|3|0|x')
  1098.   call close(f1);se '#0 'dfile'UserConfig}';end
  1099.  signal READWOF
  1100.  
  1101. SAVEWOF:;call open(f1,md,'w');call writeln(f1,config);do i=1 to prizes
  1102.     call writeln(f1,prize.i);end i;call close(f1)
  1103.   return
  1104.  
  1105. SENDOLM:;parse arg text;gu v1;path=result;z="00"x;a=''
  1106.     if exists(path'_olm'port) then a='a';name=path'_'a'olm'
  1107.     a='w';t=0;if exists(name) then a='a'
  1108.     h=left(handle,26,z)copies(z,28)text'0A1A0A'x;h=overlay(d2c(1),h,31,2)
  1109.     do i=Lpor to Hpor;n=name||i;getwhere i;w=result
  1110.       if w='Idle'|w='(offline)'|i=port then iterate i
  1111.       call forbid();call open(f1,n,a);call writeln(f1,h);call close(f1)
  1112.       call permit();se 'h2'right(i,2);args=i' 'v2' 'p1' 'port
  1113.       address command "run >nil: rx "dfile"OLM_Proc "args;t=t+1
  1114.     end i;se 'h2cb't"c6 Total cfOLM's c6Sent!"
  1115.   return
  1116.  
  1117. MORE:;setobject oldmore;putuser 1100454;return  /* Reset More? Mode */
  1118. MORE0:;setobject 0;putuser 1100454;return   /* Turn More? Prompt OFF */
  1119. MORE1:;setobject 1;putuser 1100454;return   /* Turn More? Prompt ON  */
  1120. MUFFLE:;if muffle=0 then bbscommand 'mu *';return
  1121. MONITOR:;if monitor=1 then bbscommand 'um *';return
  1122.  
  1123. CLOSED:;if closed=1 then tr "*4 "dfile"graphics/closed.ibm}"
  1124.   signal QUIT3
  1125.  
  1126. CHECKPORTS:
  1127.     cnet=1;bbsidentify bbs;if subword(result,4,1)='2.63' then cnet=0
  1128.     ports='';bad=-1;gu 23;port=result;do i=Lpor to Hpor
  1129.     if cnet=1 then getwhere i;if cnet=0 then do;b=2621350+(i*4);gu b;end
  1130.     if left(result,3)='WOF' & i~=port then bad=i;end i;if bad=-1 then return
  1131.     se "*4 "dfile"graphics/busy.ibm}"
  1132.   signal QUIT3
  1133.  
  1134. READDATA: /* Read "GameData" File. Holds info on current game. */
  1135.     call open(f1,dfile'GameData','r');puzplay=readln(f1)
  1136.         puzzle=readln(f1) ;answer=readln(f1)
  1137.         guessed=readln(f1);clue=readln(f1)
  1138.         data1=readln(f1)  ;data2=readln(f1)
  1139.     call close(f1);parse var data1 author'|'nextpuznum'|'nextbonpuz'|'j
  1140.     parse var data2 consonants'|'vowels'|'j
  1141.     puzzle=translate(puzzle,reverse(xrange('!','~')),xrange('!','~'))
  1142.     answer=translate(answer,reverse(xrange('!','~')),xrange('!','~'))
  1143.     author=translate(author,reverse(xrange('!','~')),xrange('!','~'))
  1144.     clue=translate(clue,reverse(xrange('!','~')),xrange('!','~'))
  1145.     call COLORPUZZLE;call COLORGUESSED
  1146.   return
  1147.  
  1148. SAVEDATA: /* Save "GameData" File. */
  1149.     puzzle=translate(puzzle,reverse(xrange('!','~')),xrange('!','~'))
  1150.     answer=translate(answer,reverse(xrange('!','~')),xrange('!','~'))
  1151.     author=translate(author,reverse(xrange('!','~')),xrange('!','~'))
  1152.     clue=translate(clue,reverse(xrange('!','~')),xrange('!','~'))
  1153.     data1=author'|'nextpuznum'|'nextbonpuz'|x';data2=consonants'|'vowels'|x'
  1154.     call open(f1,dfile'GameData','w');call writeln(f1,puzplay)
  1155.         call writeln(f1,puzzle) ;call writeln(f1,answer)
  1156.         call writeln(f1,guessed);call writeln(f1,clue)
  1157.         call writeln(f1,data1)  ;call writeln(f1,data2)
  1158.     call close(f1)
  1159.   return
  1160.  
  1161. READBWINNERS: /* Read "BWinners" File. The Past 20 Winners. */
  1162.     call open(f1,dfile'BWinners','r')
  1163.         do i=1 until eof(f1);bwinner.i=readln(f1)
  1164.             parse var bwinner.i bwinhan.i'|'bwinpuz.i'|'bwindate.i'|'bwincash.i'|'j
  1165.         end i;bwinners=i-1
  1166.     call close(f1)
  1167.   return
  1168.  
  1169. SAVEBWINNERS: /* Save "BWinners" File. */
  1170.     call open(f1,dfile'BWinners','w')
  1171.         do i=1 to bwinners;call writeln(f1,bwinner.i);end i
  1172.     call close(f1)
  1173.   return
  1174.  
  1175. READWINNERS: /* Read "Winners" File. The Past 20 Winners. */
  1176.     call open(f1,dfile'Winners','r')
  1177.         do i=1 until eof(f1);winner.i=readln(f1)
  1178.             parse var winner.i winhan.i'|'winpuz.i'|'windate.i'|'j
  1179.         end i;winners=i-1
  1180.     call close(f1)
  1181.   return
  1182.  
  1183. SAVEWINNERS: /* Save "Winners" File. */
  1184.     call open(f1,dfile'Winners','w')
  1185.         do i=1 to winners;call writeln(f1,winner.i);end i
  1186.     call close(f1)
  1187.   return
  1188.  
  1189. SAVEBWINNER: /* Save "BWinner" File. */
  1190.     call open(f1,dfile'BWinner','w')
  1191.         call writeln(f1,bwinner)
  1192.     call close(f1)
  1193.   return
  1194.  
  1195. READWINNER: /* Read "Winner" File. Who was the LAST Winner? */
  1196.     call open(f1,dfile'Winner','r')
  1197.         winner=readln(f1)
  1198.     call close(f1)
  1199.     parse var winner winhan'|'winpuz'|'windate'|'winmon'|'wins'|'j
  1200.   return
  1201.  
  1202. SAVEWINNER: /* Save "Winner" File. */
  1203.     call open(f1,dfile'Winner','w')
  1204.         call writeln(f1,winner)
  1205.     call close(f1)
  1206.   return
  1207.  
  1208. READMILLIONAIRES:
  1209.     call open(f1,dfile'Millionaires','r')
  1210.         do i=1 until eof(f1);mil.i=readln(f1)
  1211.             parse var mil.i mills.i'|'mildate.i'|'milhan.i'|'j
  1212.         end i;millionaires=i-1
  1213.     call close(f1)
  1214.   return
  1215.  
  1216. SAVEMILLIONAIRES:
  1217.     do i=1 to millionaires-1;d=i;do j=i+1 to millionaires;d=d+1
  1218.     if mil.d>mil.i then do;y=mil.i;mil.i=mil.d;mil.d=y;end;end j;end i
  1219.     call open(f1,dfile'Millionaires','w')
  1220.         do i=1 to millionaires;if index(mil.i,'No One Yet')=0 then call writeln(f1,mil.i);end i
  1221.     call close(f1)
  1222.   return
  1223.  
  1224. READBMILLIONAIRES:
  1225.     call open(f1,dfile'BMillionaires','r')
  1226.         do i=1 until eof(f1);bmil.i=readln(f1)
  1227.             parse var bmil.i bmills.i'|'bmildate.i'|'bmilhan.i'|'j
  1228.         end i;bmillionaires=i-1
  1229.     call close(f1)
  1230.   return
  1231.  
  1232. SAVEBMILLIONAIRES:
  1233.     do i=1 to bmillionaires-1;d=i;do j=i+1 to bmillionaires;d=d+1
  1234.     if bmil.d>bmil.i then do;y=bmil.i;bmil.i=bmil.d;bmil.d=y;end;end j;end i
  1235.     call open(f1,dfile'BMillionaires','w')
  1236.         do i=1 to bmillionaires;if index(bmil.i,'No One Yet')=0 then call writeln(f1,bmil.i);end i
  1237.     call close(f1)
  1238.   return
  1239.  
  1240. READBANKERS:
  1241.     call open(f1,dfile'Bankers','r')
  1242.         do i=1 until eof(f1);bil.i=readln(f1)
  1243.             parse var bil.i bills.i'|'bildate.i'|'bilhan.i'|'btype.i'|'j
  1244.         end i;bankers=i-1
  1245.     call close(f1)
  1246.   return
  1247.  
  1248. SAVEBANKERS:
  1249.     do i=1 to bankers-1;d=i;do j=i+1 to bankers;d=d+1
  1250.     if bil.d>bil.i then do;y=bil.i;bil.i=bil.d;bil.d=y;end;end j;end i
  1251.     call open(f1,dfile'Bankers','w')
  1252.         do i=1 to bankers;if index(bil.i,'No One Yet')=0 then call writeln(f1,bil.i);end i
  1253.     call close(f1)
  1254.   return
  1255.  
  1256. READSTATS: /* Read "Stats" File & Initialize These Variables. */
  1257.     call open(f1,dfile'Stats','r')
  1258.         do i=1 to 6;stats.i=readln(f1);end i
  1259.     call close(f1)
  1260.     parse var stats.1 mostplaysH'|'mostplays'|'j
  1261.     parse var stats.2 mostpuzsH'|'mostpuzs'|'j
  1262.     parse var stats.3 mostbankH'|'mostbank'|'j
  1263.     parse var stats.4 mostcashH'|'mostcash'|'j
  1264.     parse var stats.5 mostbwinsH'|'mostbwins'|'j
  1265.     parse var stats.6 mostbcashH'|'mostbcash'|'j
  1266.   return
  1267.  
  1268. SAVESTATS: /* Save "Stats" File. */
  1269.     call open(f1,dfile'Stats','w')
  1270.         do i=1 to 6;call writeln(f1,stats.i);end i
  1271.     call close(f1)
  1272.   return
  1273.  
  1274. READPLAYERS: /* Read "Players" File & Mark Current Player if Exists. */
  1275.     call open(f1,dfile'Players','r');player=0
  1276.         do i=1 until eof(f1);player.i=readln(f1)
  1277.             parse var player.i han'|'j
  1278.             if han=handle then player=i
  1279.         end i;players=i-1
  1280.     call close(f1)
  1281.   return
  1282.  
  1283. SAVEPLAYERS: /* Save "Players" File. */
  1284.     player.player=handle'|'puzwon'|'monwon'|'puznum'|'moncur'|'played'|'percent'|'bonwins'|'boncash'|'mills'|'bmills'|x'
  1285.     call open(f1,dfile'Players','w')
  1286.         do i=1 to players;call writeln(f1,player.i);end i
  1287.     call close(f1);address command "sort "dfile"Players "dfile"Players"
  1288.   return
  1289.  
  1290. SETUP:;tr '#0'dfile'SetUp}';return
  1291.  
  1292. RESETGAME:
  1293.   if resetM=1 then do;se 'f1n1c6After speaking with c9'sysop'c6, 'hostM' tells you, cb"cd'handle'ca, your cfSysOpca, c9'sysop
  1294.     se 'ca, tells me it''s been ce'resetV' months casince the last reset of this game! Jeez, you''d think '
  1295.     tr 'he cbruns cathe place or something!cb"';end
  1296.   else do;if olm>0 then do;se "Sending OLM's:   "
  1297.     call SENDOLM("   cfCongratulations c6to cd"handle" c6who just became c9MASTER c6of cbWheel of Fortunec6!");end
  1298.     call WL("cfCongratulations c6to ca"handle" c6who just became c9MASTER c6of cbWheel of Fortunec6!")
  1299.     se 'f1n1c6Gasping for breath, 'hostM' says, cb"caCongratulations cd'handle
  1300.     se 'ca, You''ve just become cfMASTER caof cbWheel of Fortuneca!  We can now c9RESET '
  1301.     tr 'cathe game, but c9not cauntil we ceimmortalize cayour name for posterity!cb"'
  1302.     gu 1100461;ge=result;a1=HostF;a2=HostM;a3="hunk";if ge=0 then do;z=a1;a1=a2;a2=zl;a3="babe";end
  1303.     se 'n1c6While 'a2' takes care of business with the director off stage, '
  1304.     se a1' walks up to you and says, cb"caWow cd'handle'ca, your a cf'a3'ca! Here''s '
  1305.     se 'my phone number. Give me a call tonight, as I have another '
  1306.     tr 'game I''d like to play with you.cb"' ; end
  1307.     se 'n1cbResetting c6player caMc2onetary c6values...';call READPLAYERS;monwon=0;moncur=0;boncash=0;mills=0;bmills=0
  1308.     call open(f1,dfile'Players','w');do i=1 to players
  1309.     parse var player.i v1'|'v2'|'v3'|'v4'|'v5'|'v6'|'v7'|'v8'|'v9'|'v10'|'v11'|'j
  1310.     player.i=v1'|'v2'|0|'v4'|0|'v6'|'v7'|'v8'|0|0|0|x';call writeln(f1,player.i);end i
  1311.     call close(f1);call open(f1,dfile'LastReset','w');call writeln(f1,date('s'))
  1312.     call writeln(f1,handle);call close(f1);tr 'cddonec6!n1'key1
  1313.   return
  1314.  
  1315. D0: /* Call The Correct Wheel Graphic Location */
  1316.     b='D'spot;c=spot;se 'f0n1';signal (b)
  1317. D1: /* 100 mci done */
  1318.     tr 'Ccf▄▄▄▄z1▀▀▀▀    ca▄    ▄▄▄    ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1319.     tr 'Ccf█z1           ca▀█   █   █  █   █           cf█z0'
  1320.     tr 'Ccf█z1            ca█   █   █  █   █           cf█z0'
  1321.     tr 'Ccf█z1           ca▄█▄  ▀▄c9█c1z0▀z1ca▀  ▀▄▄▄▀           cf█z0'
  1322.     tr 'Ccf▀z1▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z1cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1323.   return
  1324. D2: /* 150 mci done */
  1325.     tr 'Ccf▄▄▄▄z2▀▀▀▀    cb▄   ▄▄▄▄▄   ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1326.     tr 'Ccf█z2           cb▀█   █▄▄▄   █   █           cf█z0'
  1327.     tr 'Ccf█z2            cb█       █  █   █           cf█z0'
  1328.     tr 'Ccf█z2           cb▄█▄  ▀▄c9█c2z0▀z2cb▀  ▀▄▄▄▀           cf█z0'
  1329.     tr 'Ccf▀z2▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z2cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1330.   return
  1331. D3: /* 200 mci done */
  1332.     tr 'Ccf▄▄▄▄z3▀▀▀▀  cc▄▄▄    ▄▄▄    ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1333.     tr 'Ccf█z3             cc█  █   █  █   █           cf█z0'
  1334.     tr 'Ccf█z3          cc▄▀▀   █   █  █   █           cf█z0'
  1335.     tr 'Ccf█z3          cc█▄▄▄  ▀▄c9█c3z0▀z3cc▀  ▀▄▄▄▀           cf█z0'
  1336.     tr 'Ccf▀z3▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z3cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1337.   return
  1338. D4: /* 250 mci done */
  1339.     tr 'Ccf▄▄▄▄z4▀▀▀▀  cd▄▄▄   ▄▄▄▄▄   ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1340.     tr 'Ccf█z4             cd█  █▄▄▄   █   █           cf█z0'
  1341.     tr 'Ccf█z4          cd▄▀▀       █  █   █           cf█z0'
  1342.     tr 'Ccf█z4          cd█▄▄▄  ▀▄c9█c4z0▀z4cd▀  ▀▄▄▄▀           cf█z0'
  1343.     tr 'Ccf▀z4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z4cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1344.   return
  1345. D5: /* 300 mci done */
  1346.     tr 'Ccf▄▄▄▄z5▀▀▀▀  ce▄▄▄    ▄▄▄    ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1347.     tr 'Ccf█z5         ce▀   █  █   █  █   █           cf█z0'
  1348.     tr 'Ccf█z5           ce▀▀▄  █   █  █   █           cf█z0'
  1349.     tr 'Ccf█z5         ce▀▄▄▄▀  ▀▄c9█c5z0▀z5ce▀  ▀▄▄▄▀           cf█z0'
  1350.     tr 'Ccf▀z5▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z5cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1351.   return
  1352. D6: /* 400 mci done */
  1353.     tr 'Ccf▄▄▄▄z6▀▀▀▀ cf▄   ▄   ▄▄▄    ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1354.     tr 'Ccf█z6         cf█   █  █   █  █   █           cf█z0'
  1355.     tr 'Ccf█z6         cf▀▀▀▀█  █   █  █   █           cf█z0'
  1356.     tr 'Ccf█z6             cf█  ▀▄c9█c6z0▀z6cf▀  ▀▄▄▄▀           cf█z0'
  1357.     tr 'Ccf▀z6▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z6cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1358.   return
  1359. D7: /* 450 mci done */
  1360.     tr 'Ccf▄▄▄▄z7▀▀▀▀ c9▄   ▄  ▄▄▄▄▄   ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1361.     tr 'Ccf█z7         c9█   █  █▄▄▄   █   █           cf█z0'
  1362.     tr 'Ccf█z7         c9▀▀▀▀█      █  █   █           cf█z0'
  1363.     tr 'Ccf█z7             c9█  ▀▄c9█c7z0▀z7c9▀  ▀▄▄▄▀           cf█z0'
  1364.     tr 'Ccf▀z7▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z7cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1365.   return
  1366. D8: /* 500 mci done */
  1367.     tr 'Ccf▄▄▄▄z1▀▀▀▀ cb▄▄▄▄▄   ▄▄▄    ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1368.     tr 'Ccf█z1         cb█▄▄▄   █   █  █   █           cf█z0'
  1369.     tr 'Ccf█z1             cb█  █   █  █   █           cf█z0'
  1370.     tr 'Ccf█z1         cb▀▄▄▄▀  ▀▄c9█c1z0▀z1cb▀  ▀▄▄▄▀           cf█z0'
  1371.     tr 'Ccf▀z1▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z1cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1372.   return
  1373. D9: /* 600 mci done */
  1374.     tr 'Ccf▄▄▄▄z2▀▀▀▀   cc▄▄▄   ▄▄▄    ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1375.     tr 'Ccf█z2         cc▄▀     █   █  █   █           cf█z0'
  1376.     tr 'Ccf█z2         cc█▀▀▀▄  █   █  █   █           cf█z0'
  1377.     tr 'Ccf█z2         cc▀▄▄▄▀  ▀▄c9█c2z0▀z2cc▀  ▀▄▄▄▀           cf█z0'
  1378.     tr 'Ccf▀z2▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z2cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1379.   return
  1380. D10: /* 750 mci done */
  1381.     tr 'Ccf▄▄▄▄z3▀▀▀▀ cd▄▄▄▄▄  ▄▄▄▄▄   ▄▄▄    cf▀▀▀▀z0▄▄▄▄'
  1382.     tr 'Ccf█z3             cd█  █▄▄▄   █   █           cf█z0'
  1383.     tr 'Ccf█z3           cd▄▀       █  █   █           cf█z0'
  1384.     tr 'Ccf█z3         cd▄▀     ▀▄c9█c3z0▀z3cd▀  ▀▄▄▄▀           cf█z0'
  1385.     tr 'Ccf▀z3▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z3cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1386.   return
  1387. D11: /* 1000 mci done */
  1388.     tr 'Ccf▄▄▄▄z4▀▀▀▀ ce▄    ▄▄▄    ▄▄▄    ▄▄▄cf▀▀▀▀z0▄▄▄▄'
  1389.     tr 'Ccf█z4        ce▀█   █   █  █   █  █   █       cf█z0'
  1390.     tr 'Ccf█z4         ce█   █   █  █   █  █   █       cf█z0'
  1391.     tr 'Ccf█z4        ce▄█▄  ▀▄▄▄▀c9█c4z0▀z4ce▀▄▄▄▀  ▀▄▄▄▀       cf█z0'
  1392.     tr 'Ccf▀z4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z4cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1393.   return
  1394. D12: /* Free Spin mci done */
  1395.     tr 'Ccf▄▄▄▄z5▀▀▀▀                       cf▀▀▀▀z0▄▄▄▄'
  1396.     tr 'Ccf█z5 cb█▀▀▀ █▀▀▄ █▀▀ █▀▀ ▄▀▀▄ █▀▀▄ ▀█▀ █▄  █ cf█z0'
  1397.     tr 'Ccf█z5 cb█▀▀  █▀▀▄ █▀  █▀   ▀▄  █▀▀   █  █ █ █ cf█z0'
  1398.     tr 'Ccf█z5 cb█    █  █ █▄▄ █▄▄c9█cbz0▀z5cb▄▄▀ █    ▄█▄ █  ▀█ cf█z0'
  1399.     tr 'Ccf▀z5▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z5cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1400.   return
  1401. D13: /* Surprise mci done */
  1402.     tr 'Ccf▄▄▄▄z6▀▀▀▀                       cf▀▀▀▀z0▄▄▄▄'
  1403.     tr 'Ccf█z6cb▄▀▀▄ █  █ █▀▀▄ █▀▀▄ █▀▀▄ ▀█▀ ▄▀▀▄ █▀▀  cf█z0'
  1404.     tr 'Ccf█z6 cb▀▄  █  █ █▀▀▄ █▀▀  █▀▀▄  █   ▀▄  █▀   cf█z0'
  1405.     tr 'Ccf█z6cb▀▄▄▀ ▀▄▄▀ █  █ █  c9█c6z0▀z6cb█  █ ▄█▄ ▀▄▄▀ █▄▄  cf█z0'
  1406.     tr 'Ccf▀z6▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z6cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1407.   return
  1408. D14: /* Lose Turn mci done */
  1409.     tr 'Ccf▄▄▄▄z3▀▀▀▀                       cf▀▀▀▀z0▄▄▄▄'
  1410.     tr 'Ccf█z3 ce█   ▄▀▀▄ ▄▀▀▄ █▀▀ ▀█▀ █  █ █▀▀▄ █▄  █ cf█z0'
  1411.     tr 'Ccf█z3 ce█   █  █  ▀▄  █▀   █  █  █ █▀▀▄ █ █ █ cf█z0'
  1412.     tr 'Ccf█z3 ce█▄▄ ▀▄▄▀ ▀▄▄▀ █▄▄c9█c3z0▀z3ce█  ▀▄▄▀ █  █ █  ▀█ cf█z0'
  1413.     tr 'Ccf▀z3▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z3cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1414.   return
  1415. D15: /* Bankrupt mci done */
  1416.     tr 'Ccf▄▄▄▄z4▀▀▀▀                       cf▀▀▀▀z0▄▄▄▄'
  1417.     tr 'Ccf█z4cb█▀▀▄ ▄▀▀▄ █▄  █ █ ▄▀ █▀▀▄ █  █ █▀▀▄ ▀█▀cf█z0'
  1418.     tr 'Ccf█z4cb█▀▀▄ █▀▀█ █ █ █ █▀▄  █▀▀▄ █  █ █▀▀   █ cf█z0'
  1419.     tr 'Ccf█z4cb█▄▄▀ █  █ █  ▀█ █ c9█cbz0▀z4cb █  █ ▀▄▄▀ █     █ cf█z0'
  1420.     tr 'Ccf▀z4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z4cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0cf▀'
  1421.   return
  1422. D16: /* Blank Wheel */
  1423.     tr 'Ccf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄'
  1424.     tr 'C▄▄▄▄z7▀▀▀▀  c8Written By Dotoran!  cf▀▀▀▀z0▄▄▄▄'
  1425.     tr 'C█z7                                       z0█'
  1426.     tr 'C█z7                                       z0█'
  1427.     tr 'C█z7                  c9█c0▄                   z0cf█'
  1428.     tr 'C▀z7▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄c9█z0 z7cf▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄z0▀'
  1429.     tr 'C▀z7▄              c9██z0 z7              cf▄z0▀'
  1430.     tr 'C▀z7▄            c9██z0 z7            cf▄z0▀'
  1431.     tr 'C▀z7▄          c9███z0 z7         cf▄z0▀'
  1432.     tr 'C▀z7▄        c9███z0 z7       cf▄z0▀'
  1433.     tr 'C▀z7▄      c9███z0 z7     cf▄z0▀'
  1434.     tr 'C▀z7▄    c9███z0 z7   cf▄z0▀'
  1435.     tr 'C▀z7▄  c9███z0 z7 cf▄z0▀'
  1436.     tr 'C▀z7▄c9███z0 cf▀'
  1437.     tr 'C▀'
  1438.   return
  1439. D17: /* Rotating Wheel Routine */
  1440.     tr 'C█▀▀▀▀▀▀▀▀▀▀█';tr 'C█▀▀ BANKRUPT ▀▀█';tr 'C█▀▀ 300 ▄▄▄▄ 750 ▀▀█'
  1441.     tr 'C█▀▀ 250 ▄▄████▄▄ 250 ▀▀█';tr 'C█▀▀ 600 ▄▄██████▄▄ 300 ▀▀█'
  1442.     tr 'C█▀▀ 400 ▄▄█████ ██████▄▄ 200 ▀▀█';tr 'C█▀ 150 ▄▄████████ ███████▄▄ 100 ▀█'
  1443.     tr 'C█ 'left(word('200 1000',(wheel=wheal)+1),4)' ███WOF██ v6.40███  500 █'
  1444.     tr 'C█▄ 250 ▀▀████████ ███████▀▀ 400 ▄█';tr 'C█▄▄ 400 ▀▀▀██████ ███▀▀▀ 300 ▄▄█'
  1445.     tr 'C█▄▄ LOSE ▀████ █▀ FREE ▄▄█';tr 'C█▄▄ 450 ▀▀███ ▀▀ 200 ▄▄█'
  1446.     tr 'C█▄▄ 150 ▀▀   100 ▄▄█';tr 'C█▄▄ SURPRISE ▄▄█';tr 'C█▄▄▄▄▄▄▄▄▄▄█'
  1447.     a=random(2,3);b=random(1,24);t=slow%100;l1=1;l2=1;do i=1 to a;do j=1 to 24;call time('r');do until time('e')>=t;end
  1448.     tr ''l1'H 'l2'H ';l=word(locs,j);parse var l l1'|'l2;tr ''l1'Hce*'l2'H*';end j;end i
  1449.     do i=1 to b;call time('r');do until time('e')>=t;end;tr ''l1'H 'l2'H ';l=word(locs,i);parse var l l1'|'l2
  1450.     tr ''l1'Hce*'l2'H*';end i;se '1H';c=word(wheel,b)
  1451.   return
  1452.  
  1453. TITLE:
  1454.     tr 'Cz5c0▀┌─────────────┐▀z0Cz6c9┌─────────────────────────────────────┐z0'
  1455.     tr 'Cz5c0▀┌─┘▄z0Cz5▄└─┐▀z0Cz6c9│ z7cc▄▀▀z6 z2c1░░░z6 z2░░░z6 z2░░░z6 z7cc▀█▀z6 z2c0▓▓▓z6 z2▓▓▓z6 z2▓▓▓z6 z2▓▓▓z6c9 │z0'
  1456.     tr 'Cz5c0▀┌─┘▄z0cfCT H ECz5c0▄└─┐▀z0Cz6c9│ z7cc▀▄▄z6 z2c1░░░z6 z2░░░z6 z2░░░z6 z7cc █ z6 z2c0▓▓▓z6 z2▓▓▓z6 z2▓▓▓z6 z2▓▓▓z6c9 │z0'
  1457.     tr '   z5c0▀┌─┘▄z0Cz5▄└─┐▀z0Cz6c9│                                     │z0'
  1458.     tr ' z5c0▀┌─┘▄z0cbCW H E E LCz5c0▄└─┐▀z0Cz6c9│ z2c1░░░z6 z7cc▄▀▄z6 z2c1░░░z6 z7cc▀█▀z6 z2c1░░░z6 z2░░░z6 z2░░░z6 z7cc█▀▄z6 z2c0▓▓▓z6c9 │z0'
  1459.     tr ' z5c0▄│▄z0Cz5▄│▄z0Cz6c9│ z2c1░░░z6 z7cc█▀█z6 z2c1░░░z6 z7cc █ z6 z2c1░░░z6 z2░░░z6 z2░░░z6 z7cc█▄▀z6 z2c0▓▓▓z6c9 │z0'
  1460.     tr '  z5c0│z0cfCO FCz5c0│z0Cz6c9└─────────────────────────────────────┘z0'
  1461.     tr ' z5c0▀│▀z0Cz5▀│▀z0'
  1462.     tr ' z5c0▄└─┐▀z0cbCF O R T U N ECz5c0▀┌─┘▄z0CcbP E R S O N'
  1463.     tr '   z5c0▄└─┐▀z0Cz5▀┌─┘▄z0'
  1464.     tr 'Cz5c0▄└─┐▀z0ceC'left(ver,5)'Cz5c0▀┌─┘▄z0CcdCompletely ReWritten by c9Dotorancd!'
  1465.     tr 'Cz5c0▄└─┐▀z0Cz5▀┌─┘▄z0'
  1466.     tr 'Cz5c0▄└─────────────┘▄z0CcfYour Hostsc9: ca'hosts'cf!!n1'
  1467.   return
  1468.  
  1469. SYNTAX:;ERROR:;IOERR:;e1=' c9Errorcf: ca'rc' cf(ca'errortext(rc)'cf)';e2='  c9Linecf: ce'left(sigl,4)'c9Filecf:'
  1470.     gu 1311992;a=result;gu 1311960;b=result;c='cb"ce'a||b'cb"';e2=e2' 'c;tr e1;tr e2;logentry e1;logentry e2;e=sourceline(sigl)
  1471.     do while e~='';e3='c9Sourcecf: cd'left(e,37);tr e3;logentry e3;e=substr(e,37);end;bufferflush;signal QUIT3
  1472. /** Last Edited: 29-Sep-95 ************************************************\
  1473. \****************************************** FRONTIERS BBS (716)/823-9892 **/
  1474.